0001628280-21-021805.txt : 20211104 0001628280-21-021805.hdr.sgml : 20211104 20211104164409 ACCESSION NUMBER: 0001628280-21-021805 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 75 CONFORMED PERIOD OF REPORT: 20210930 FILED AS OF DATE: 20211104 DATE AS OF CHANGE: 20211104 FILER: COMPANY DATA: COMPANY CONFORMED NAME: GRID DYNAMICS HOLDINGS, INC. CENTRAL INDEX KEY: 0001743725 STANDARD INDUSTRIAL CLASSIFICATION: SERVICES-PREPACKAGED SOFTWARE [7372] IRS NUMBER: 830632724 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-38685 FILM NUMBER: 211380590 BUSINESS ADDRESS: STREET 1: 7660 FAY AVENUE STREET 2: SUITE H, UNIT 339 CITY: LA JOLLA STATE: CA ZIP: 92037 BUSINESS PHONE: (619) 736-6855 MAIL ADDRESS: STREET 1: 7660 FAY AVENUE STREET 2: SUITE H, UNIT 339 CITY: LA JOLLA STATE: CA ZIP: 92037 FORMER COMPANY: FORMER CONFORMED NAME: ChaSerg Technology Acquisition Corp DATE OF NAME CHANGE: 20180615 10-Q 1 gdyn-20210930.htm 10-Q gdyn-20210930
12-31false00017437252021Q31P30D.25.062500017437252021-01-012021-09-30xbrli:shares00017437252021-11-02iso4217:USD00017437252021-09-3000017437252020-12-31iso4217:USDxbrli:shares00017437252021-07-012021-09-3000017437252020-07-012020-09-3000017437252020-01-012020-09-300001743725us-gaap:PreferredStockMember2020-12-310001743725us-gaap:CommonStockMember2020-12-310001743725us-gaap:AdditionalPaidInCapitalMember2020-12-310001743725us-gaap:RetainedEarningsMember2020-12-310001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-12-310001743725us-gaap:RetainedEarningsMember2021-01-012021-03-3100017437252021-01-012021-03-310001743725us-gaap:AdditionalPaidInCapitalMember2021-01-012021-03-310001743725us-gaap:CommonStockMember2021-01-012021-03-310001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-01-012021-03-310001743725us-gaap:PreferredStockMember2021-03-310001743725us-gaap:CommonStockMember2021-03-310001743725us-gaap:AdditionalPaidInCapitalMember2021-03-310001743725us-gaap:RetainedEarningsMember2021-03-310001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-03-3100017437252021-03-310001743725us-gaap:RetainedEarningsMember2021-04-012021-06-3000017437252021-04-012021-06-300001743725us-gaap:AdditionalPaidInCapitalMember2021-04-012021-06-300001743725us-gaap:CommonStockMember2021-04-012021-06-300001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-04-012021-06-300001743725us-gaap:PreferredStockMember2021-06-300001743725us-gaap:CommonStockMember2021-06-300001743725us-gaap:AdditionalPaidInCapitalMember2021-06-300001743725us-gaap:RetainedEarningsMember2021-06-300001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-06-3000017437252021-06-300001743725us-gaap:RetainedEarningsMember2021-07-012021-09-300001743725us-gaap:AdditionalPaidInCapitalMember2021-07-012021-09-300001743725us-gaap:CommonStockMember2021-07-012021-09-300001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-07-012021-09-300001743725us-gaap:PreferredStockMember2021-09-300001743725us-gaap:CommonStockMember2021-09-300001743725us-gaap:AdditionalPaidInCapitalMember2021-09-300001743725us-gaap:RetainedEarningsMember2021-09-300001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-09-300001743725srt:ScenarioPreviouslyReportedMemberus-gaap:PreferredStockMember2019-12-310001743725srt:ScenarioPreviouslyReportedMemberus-gaap:CommonStockMember2019-12-310001743725us-gaap:AdditionalPaidInCapitalMembersrt:ScenarioPreviouslyReportedMember2019-12-310001743725us-gaap:RetainedEarningsMembersrt:ScenarioPreviouslyReportedMember2019-12-310001743725us-gaap:AccumulatedOtherComprehensiveIncomeMembersrt:ScenarioPreviouslyReportedMember2019-12-310001743725srt:ScenarioPreviouslyReportedMember2019-12-310001743725srt:RestatementAdjustmentMemberus-gaap:PreferredStockMember2019-12-310001743725srt:RestatementAdjustmentMemberus-gaap:CommonStockMember2019-12-310001743725us-gaap:AdditionalPaidInCapitalMembersrt:RestatementAdjustmentMember2019-12-310001743725srt:RestatementAdjustmentMember2019-12-310001743725us-gaap:PreferredStockMember2019-12-310001743725us-gaap:CommonStockMember2019-12-310001743725us-gaap:AdditionalPaidInCapitalMember2019-12-310001743725us-gaap:RetainedEarningsMember2019-12-310001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2019-12-3100017437252019-12-310001743725us-gaap:RetainedEarningsMember2020-01-012020-03-3100017437252020-01-012020-03-310001743725us-gaap:AdditionalPaidInCapitalMember2020-01-012020-03-310001743725us-gaap:PreferredStockMember2020-01-012020-03-310001743725us-gaap:CommonStockMember2020-01-012020-03-310001743725us-gaap:PreferredStockMember2020-03-310001743725us-gaap:CommonStockMember2020-03-310001743725us-gaap:AdditionalPaidInCapitalMember2020-03-310001743725us-gaap:RetainedEarningsMember2020-03-310001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-03-3100017437252020-03-310001743725us-gaap:RetainedEarningsMember2020-04-012020-06-3000017437252020-04-012020-06-300001743725us-gaap:AdditionalPaidInCapitalMember2020-04-012020-06-300001743725us-gaap:CommonStockMember2020-04-012020-06-300001743725us-gaap:PreferredStockMember2020-06-300001743725us-gaap:CommonStockMember2020-06-300001743725us-gaap:AdditionalPaidInCapitalMember2020-06-300001743725us-gaap:RetainedEarningsMember2020-06-300001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-06-3000017437252020-06-300001743725us-gaap:RetainedEarningsMember2020-07-012020-09-300001743725us-gaap:AdditionalPaidInCapitalMember2020-07-012020-09-300001743725us-gaap:CommonStockMember2020-07-012020-09-300001743725us-gaap:PreferredStockMember2020-09-300001743725us-gaap:CommonStockMember2020-09-300001743725us-gaap:AdditionalPaidInCapitalMember2020-09-300001743725us-gaap:RetainedEarningsMember2020-09-300001743725us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-09-3000017437252020-09-3000017437252020-03-0500017437252020-03-052020-03-05gdyn:customer0001743725us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-09-300001743725us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001743725gdyn:UnbilledReceivablesMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-09-300001743725gdyn:UnbilledReceivablesMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001743725us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2020-07-012020-09-300001743725us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-09-300001743725us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-07-012021-09-300001743725us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-09-300001743725srt:MinimumMember2021-01-012021-09-300001743725srt:MaximumMember2021-01-012021-09-30gdyn:reportingUnit0001743725gdyn:ChaSergMembergdyn:GDIMember2020-03-05xbrli:pure0001743725gdyn:ChaSergMembergdyn:GDIMembersrt:RestatementAdjustmentMember2020-03-052020-03-050001743725gdyn:ChaSergMembergdyn:GDIMember2020-03-052020-03-050001743725gdyn:ChaSergMember2020-03-050001743725gdyn:AdditionalPaidInCapitalReductionOfProceedsMember2020-03-052020-03-050001743725us-gaap:GeneralAndAdministrativeExpenseMember2020-03-052020-03-050001743725gdyn:CostOfRevenueAndOperatingExpensesMembergdyn:A2017AcquisitionMember2020-03-052020-03-050001743725gdyn:TacticKnowledgeIncMember2021-05-29gdyn:employee0001743725gdyn:TacticKnowledgeIncMember2021-05-292021-05-290001743725us-gaap:CustomerRelationshipsMembergdyn:TacticKnowledgeIncMember2021-05-290001743725gdyn:TacticKnowledgeIncMemberus-gaap:TradeNamesMember2021-05-290001743725us-gaap:CustomerRelationshipsMembergdyn:TacticKnowledgeIncMember2021-05-292021-05-290001743725gdyn:TacticKnowledgeIncMemberus-gaap:TradeNamesMember2021-05-292021-05-290001743725gdyn:TacticKnowledgeIncMember2021-01-012021-09-300001743725gdyn:TacticKnowledgeIncMember2020-01-012020-09-300001743725srt:MinimumMemberus-gaap:ComputerEquipmentMember2021-01-012021-09-300001743725srt:MaximumMemberus-gaap:ComputerEquipmentMember2021-01-012021-09-300001743725us-gaap:ComputerEquipmentMember2021-09-300001743725us-gaap:ComputerEquipmentMember2020-12-310001743725us-gaap:AutomobilesMember2021-01-012021-09-300001743725us-gaap:AutomobilesMember2021-09-300001743725us-gaap:AutomobilesMember2020-12-310001743725us-gaap:FurnitureAndFixturesMembersrt:MinimumMember2021-01-012021-09-300001743725srt:MaximumMemberus-gaap:FurnitureAndFixturesMember2021-01-012021-09-300001743725us-gaap:FurnitureAndFixturesMember2021-09-300001743725us-gaap:FurnitureAndFixturesMember2020-12-310001743725us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2021-01-012021-09-300001743725us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2021-09-300001743725us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2020-12-310001743725srt:MinimumMemberus-gaap:LeaseholdImprovementsMember2021-01-012021-09-300001743725srt:MaximumMemberus-gaap:LeaseholdImprovementsMember2021-01-012021-09-300001743725us-gaap:LeaseholdImprovementsMember2021-09-300001743725us-gaap:LeaseholdImprovementsMember2020-12-310001743725gdyn:PropertyPlantAndEquipmentExcludingCapitalizedSoftwareCostsMember2021-09-300001743725gdyn:PropertyPlantAndEquipmentExcludingCapitalizedSoftwareCostsMember2020-12-310001743725srt:MinimumMemberus-gaap:SoftwareDevelopmentMember2021-01-012021-09-300001743725srt:MaximumMemberus-gaap:SoftwareDevelopmentMember2021-01-012021-09-300001743725us-gaap:SoftwareDevelopmentMember2021-09-300001743725us-gaap:SoftwareDevelopmentMember2020-12-310001743725us-gaap:CustomerRelationshipsMembersrt:MinimumMember2021-01-012021-09-300001743725srt:MaximumMemberus-gaap:CustomerRelationshipsMember2021-01-012021-09-300001743725us-gaap:CustomerRelationshipsMember2021-09-300001743725us-gaap:CustomerRelationshipsMember2020-12-310001743725srt:MinimumMemberus-gaap:TrademarksAndTradeNamesMember2021-01-012021-09-300001743725srt:MaximumMemberus-gaap:TrademarksAndTradeNamesMember2021-01-012021-09-300001743725us-gaap:TrademarksAndTradeNamesMember2021-09-300001743725us-gaap:TrademarksAndTradeNamesMember2020-12-310001743725us-gaap:NoncompeteAgreementsMember2021-01-012021-09-300001743725us-gaap:NoncompeteAgreementsMember2021-09-300001743725us-gaap:NoncompeteAgreementsMember2020-12-310001743725gdyn:DaxxWebIndustriesBVDaxxMember2020-12-140001743725gdyn:DaxxWebIndustriesBVDaxxMemberus-gaap:OtherNonoperatingIncomeExpenseMember2021-07-012021-09-300001743725us-gaap:OtherCurrentLiabilitiesMember2021-09-300001743725country:GB2021-01-012021-09-300001743725us-gaap:CommonStockMember2021-03-050001743725gdyn:FollowOnPublicOfferingMember2021-07-062021-07-060001743725gdyn:FollowOnPublicOfferingSharesFromParentMember2021-07-062021-07-060001743725gdyn:FollowOnPublicOfferingSharesFromSellingShareholdersMember2021-07-062021-07-0600017437252021-07-060001743725gdyn:GDIMember2019-12-310001743725gdyn:GDIMember2020-03-050001743725gdyn:EarnoutSharesMember2021-03-050001743725gdyn:EarnoutSharesOneMember2021-09-300001743725gdyn:EarnoutSharesTwoMember2021-09-300001743725gdyn:EarnoutSharesThreeMember2021-09-300001743725gdyn:EarnoutSharesMember2021-09-300001743725gdyn:EarnoutSharesMember2020-12-312020-12-310001743725gdyn:EarnoutSharesMember2021-01-202021-01-200001743725gdyn:EarnoutSharesMember2021-03-022021-03-020001743725gdyn:EarnoutSharesMember2021-03-292021-03-290001743725gdyn:PublicWarrantMember2021-07-232021-07-260001743725gdyn:PublicWarrantMember2021-07-280001743725gdyn:PublicWarrantMember2021-08-300001743725gdyn:PublicWarrantMember2021-07-282021-07-280001743725gdyn:PrivateWarrantMember2021-09-300001743725gdyn:PublicWarrantMember2021-09-300001743725gdyn:TwoThousandEighteenStockPlanMember2020-03-052020-03-050001743725gdyn:TwoThousandEighteenStockPlanMember2020-03-050001743725gdyn:TwoThousandEighteenStockPlanMember2021-01-012021-09-300001743725gdyn:TwoThousandEighteenStockPlanMember2019-12-310001743725gdyn:TwoThousandEighteenStockPlanMember2020-01-012020-03-310001743725gdyn:TwoThousandEighteenStockPlanMember2020-03-310001743725gdyn:TwoThousandEighteenStockPlanMember2020-03-012020-03-060001743725gdyn:TwoThousandEighteenStockPlanMember2020-03-060001743725gdyn:TwoThousandEighteenStockPlanMember2020-03-072020-12-310001743725gdyn:TwoThousandEighteenStockPlanMember2020-12-310001743725gdyn:TwoThousandEighteenStockPlanMember2021-01-012021-03-310001743725gdyn:TwoThousandEighteenStockPlanMember2021-03-310001743725gdyn:TwoThousandEighteenStockPlanMember2021-04-012021-06-300001743725gdyn:TwoThousandEighteenStockPlanMember2021-06-300001743725gdyn:TwoThousandEighteenStockPlanMember2021-07-012021-09-300001743725gdyn:TwoThousandEighteenStockPlanMember2021-09-300001743725us-gaap:EmployeeStockOptionMembergdyn:TwoThousandEighteenStockPlanMember2021-01-012021-09-300001743725us-gaap:EmployeeStockOptionMembergdyn:TwoThousandEighteenStockPlanMember2021-09-300001743725gdyn:A2020EquityIncentivePlanMember2020-03-050001743725gdyn:A2020EquityIncentivePlanMembergdyn:NonStatutoryStockOptionNSOMember2021-07-012021-09-300001743725gdyn:A2020EquityIncentivePlanMemberus-gaap:RestrictedStockUnitsRSUMember2021-07-012021-09-300001743725gdyn:A2020EquityIncentivePlanMember2020-12-310001743725gdyn:A2020EquityIncentivePlanMember2021-01-012021-09-300001743725gdyn:A2020EquityIncentivePlanMemberus-gaap:RestrictedStockUnitsRSUMember2021-01-012021-09-300001743725gdyn:A2020EquityIncentivePlanMemberus-gaap:PerformanceSharesMember2021-01-012021-09-300001743725gdyn:A2020EquityIncentivePlanMember2021-09-300001743725gdyn:NonStatutoryStockOptionNSOMember2021-01-012021-09-300001743725gdyn:A2020EquityIncentivePlanMember2020-01-012020-12-310001743725gdyn:A2020EquityIncentivePlanMembergdyn:NonStatutoryStockOptionNSOMember2021-01-012021-09-300001743725us-gaap:RestrictedStockUnitsRSUMember2020-12-310001743725us-gaap:RestrictedStockUnitsRSUMember2021-01-012021-09-300001743725us-gaap:RestrictedStockUnitsRSUMember2021-09-300001743725gdyn:A2020EquityIncentivePlanMemberus-gaap:RestrictedStockUnitsRSUMember2021-09-300001743725gdyn:A2020EquityIncentivePlanMemberus-gaap:PerformanceSharesMember2021-03-022021-03-020001743725gdyn:A2020EquityIncentivePlanMemberus-gaap:PerformanceSharesMember2021-03-020001743725us-gaap:PerformanceSharesMember2021-06-162021-06-160001743725us-gaap:PerformanceSharesMember2021-09-300001743725us-gaap:PerformanceSharesMember2021-01-012021-09-300001743725us-gaap:CostOfSalesMember2021-07-012021-09-300001743725us-gaap:CostOfSalesMember2020-07-012020-09-300001743725us-gaap:CostOfSalesMember2021-01-012021-09-300001743725us-gaap:CostOfSalesMember2020-01-012020-09-300001743725us-gaap:ResearchAndDevelopmentExpenseMember2021-07-012021-09-300001743725us-gaap:ResearchAndDevelopmentExpenseMember2020-07-012020-09-300001743725us-gaap:ResearchAndDevelopmentExpenseMember2021-01-012021-09-300001743725us-gaap:ResearchAndDevelopmentExpenseMember2020-01-012020-09-300001743725us-gaap:SellingAndMarketingExpenseMember2021-07-012021-09-300001743725us-gaap:SellingAndMarketingExpenseMember2020-07-012020-09-300001743725us-gaap:SellingAndMarketingExpenseMember2021-01-012021-09-300001743725us-gaap:SellingAndMarketingExpenseMember2020-01-012020-09-300001743725us-gaap:GeneralAndAdministrativeExpenseMember2021-07-012021-09-300001743725us-gaap:GeneralAndAdministrativeExpenseMember2020-07-012020-09-300001743725us-gaap:GeneralAndAdministrativeExpenseMember2021-01-012021-09-300001743725us-gaap:GeneralAndAdministrativeExpenseMember2020-01-012020-09-300001743725gdyn:A2020EquityIncentivePlanMembergdyn:NonStatutoryStockOptionNSOMemberus-gaap:ShareBasedCompensationAwardTrancheOneMember2021-01-012021-09-300001743725gdyn:A2020EquityIncentivePlanMembergdyn:NonStatutoryStockOptionNSOMemberus-gaap:ShareBasedCompensationAwardTrancheTwoMember2021-01-012021-09-300001743725us-gaap:ConvertiblePreferredStockMember2021-07-012021-09-300001743725us-gaap:ConvertiblePreferredStockMember2020-07-012020-09-300001743725us-gaap:ConvertiblePreferredStockMember2021-01-012021-09-300001743725us-gaap:ConvertiblePreferredStockMember2020-01-012020-09-300001743725us-gaap:EmployeeStockOptionMember2021-07-012021-09-300001743725us-gaap:EmployeeStockOptionMember2020-07-012020-09-300001743725us-gaap:EmployeeStockOptionMember2021-01-012021-09-300001743725us-gaap:EmployeeStockOptionMember2020-01-012020-09-300001743725us-gaap:RestrictedStockUnitsRSUMember2021-07-012021-09-300001743725us-gaap:RestrictedStockUnitsRSUMember2020-07-012020-09-300001743725us-gaap:RestrictedStockUnitsRSUMember2021-01-012021-09-300001743725us-gaap:RestrictedStockUnitsRSUMember2020-01-012020-09-300001743725us-gaap:PerformanceSharesMember2021-07-012021-09-300001743725us-gaap:PerformanceSharesMember2020-07-012020-09-300001743725us-gaap:PerformanceSharesMember2021-01-012021-09-300001743725us-gaap:PerformanceSharesMember2020-01-012020-09-300001743725us-gaap:WarrantMember2021-07-012021-09-300001743725us-gaap:WarrantMember2020-07-012020-09-300001743725us-gaap:WarrantMember2021-01-012021-09-300001743725us-gaap:WarrantMember2020-01-012020-09-300001743725gdyn:ChaSergMembergdyn:GDIMemberus-gaap:SubsequentEventMember2021-10-012021-10-31
UNITED STATES
SECURITIES AND EXCHANGE COMMISSION
WASHINGTON, D.C. 20549
FORM 10-Q
(Mark One)
x QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934
For the quarterly period ended September 30, 2021
OR
¨ TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934
For the transition period from                      to                     
Commission File Number: 001-38685
Grid Dynamics Holdings, Inc.
(Exact Name of Registrant as Specified in its Charter)
Delaware83-0632724
(State or other jurisdiction
of incorporation or organization)
(I.R.S. Employer
Identification No.)
5000 Executive Parkway, Suite 520
San Ramon, CA 94583
(Address of principal executive offices)
(650) 523-5000
(Registrant’s telephone number, including area code)
Securities registered pursuant to Section 12(b) of the Act:
Title of each classTrading Symbol(s)Name of each exchange on which registered
Common Stock, par value $0.0001 per shareGDYNThe NASDAQ Stock Market LLC
Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days. Yes x      No ¨
Indicate by check mark whether the registrant has submitted electronically, every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (§ 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files). Yes x      No ¨
Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of “large accelerated filer,” “accelerated filer,” “smaller reporting company,” and “emerging growth company” in Rule 12b-2 of the Exchange Act.
Large accelerated filer¨Accelerated filerx
Non-accelerated filer¨Smaller reporting company¨
Emerging growth companyx
If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. ¨
Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act). Yes ¨      No x
As of November 2, 2021, there were 65,251,896 shares of registrant’s common Stock issued and outstanding.



TABLE OF CONTENTS
Page

i

SPECIAL NOTE REGARDING FORWARD-LOOKING STATEMENTS
This Quarterly Report on Form 10-Q contains forward-looking statements within the meaning of the federal securities laws, which statements involve substantial risks and uncertainties. Forward-looking statements generally relate to future events or our future financial or operating performance. Forward-looking statements include all statements that are not historical facts and can be identified by terms such as “anticipates,” “believes,” “could,” “seeks,” “estimates,” “expects,” “intends,” “may,” “plans,” “potential,” “predicts,” “projects,” “should,” “will,” “would,” or similar expressions and the negatives of those terms. Forward-looking statements contained in this Quarterly Report on Form 10-Q include, but are not limited to, statements about:
the evolution of the digital engineering and information technology services landscape facing our customers and prospects;
our ability to educate the market regarding the advantages of our digital transformation products;
our ability to maintain an adequate rate of revenue growth;
our future financial and operating results;
our business plan and our ability to effectively manage our growth and associated investments;
beliefs and objectives for future operations;
our ability to expand a leadership position in enterprise-level digital transformation;
our ability to attract and retain customers;
our ability to further penetrate our existing customer base;
our ability to maintain our competitive technological advantages against new entrants in our industry;
our ability to timely and effectively scale and adapt our existing technology;
our ability to innovate new products and services and bring them to market in a timely manner;
our ability to maintain, protect, and enhance our brand and intellectual property;
our ability to capitalize on changing market conditions;
our ability to develop strategic partnerships;
benefits associated with the use of our services;
our ability to expand internationally;
our ability to raise financing in the future;
operating expenses, including changes in research and development, sales and marketing, and general administrative expenses;
the effects of seasonal trends on our results of operations;
our ability to grow and manage growth profitably and retain our key employees;
the expected benefits and effects of strategic acquisitions of business, products or technologies;
our ability to maintain the listing of our shares of common stock on the NASDAQ;
costs related to being a public company;
changes in applicable laws or regulations;
the possibility that we have been and may continue to be adversely affected by other economic, business, and/or competitive factors, including the effects of the global COVID-19 pandemic; and
other risks and uncertainties indicated in this Quarterly Report on Form 10-Q, including those set forth in Item 1A, “Risk Factors.”
We caution you that the foregoing list may not contain all of the forward-looking statements made in this Quarterly Report on Form 10-Q.
You should not rely upon forward-looking statements as predictions of future events. We have based the forward-looking statements contained in this Quarterly Report on Form 10-Q primarily on our current expectations and projections about future
ii

events and trends that we believe may affect our business, financial condition, results of operations, and prospects. The outcome of the events described in these forward-looking statements is subject to risks, uncertainties, and other factors, including those described in in Item 1A, “Risk Factors” and elsewhere in this Quarterly Report on Form 10-Q. Moreover, new risks and uncertainties emerge from time to time and it is not possible for us to predict all risks and uncertainties that could have an impact on any forward-looking statements contained in this Quarterly Report on Form 10-Q. We cannot assure you that the results, events, and circumstances reflected in the forward-looking statements will be achieved or occur, and actual results, events, or circumstances could differ materially from those described in such forward-looking statements.
Neither we nor any other person assumes responsibility for the accuracy and completeness of any of these forward-looking statements. Moreover, the forward-looking statements made in this Quarterly Report on Form 10-Q relate only to events as of the date on which the statements are made. We undertake no obligation to update any forward-looking statements made in this Quarterly Report on Form 10-Q to reflect events or circumstances after the date of this Quarterly Report on Form 10-Q or to reflect new information or the occurrence of unanticipated events, except as required by law. We may not actually achieve the plans, intentions or expectations disclosed in our forward-looking statements and you should not place undue reliance on our forward-looking statements. Our forward-looking statements do not reflect the potential impact of any future acquisitions, mergers, dispositions, restructurings, joint ventures, partnerships, or investments we may make.
In addition, statements that “we believe” and similar statements reflect our beliefs and opinions on the relevant subject. These statements are based upon information available to us as of the date of this Quarterly Report on Form 10-Q, and while we believe such information forms a reasonable basis for such statements, such information may be limited or incomplete, and our statements should not be read to indicate that we have conducted an exhaustive inquiry into, or review of, all potentially available relevant information. These statements are inherently uncertain and investors are cautioned not to unduly rely upon these statements.
iii

PART I — FINANCIAL INFORMATION
Item 1. Financial Statements
GRID DYNAMICS HOLDINGS, INC.
UNAUDITED CONDENSED CONSOLIDATED BALANCE SHEETS
(In thousands, except share and per share data)
As of
September 30,
2021
December 31,
2020
Assets
Current assets
Cash and cash equivalents$199,297 $112,745 
Accounts receivable, net of allowance of $254 and $418 as of September 30, 2021 and December 31, 2020, respectively
30,773 16,890 
Unbilled receivables4,883 1,799 
Prepaid income taxes694 821 
Prepaid expenses and other current assets5,301 2,361 
Total current assets240,948 134,616 
Property and equipment, net5,395 4,095 
Intangible assets, net19,729 8,125 
Deferred tax assets3,258 5,609 
Goodwill35,358 14,690 
Total assets$304,688 $167,135 
Liabilities and equity
Current liabilities
Accounts payable$1,772 $757 
Accrued liabilities1,148 628 
Accrued compensation and benefits11,222 7,479 
Accrued income taxes2,302 1,248 
Other current liabilities7,775 3,206 
Total current liabilities24,219 13,318 
Deferred tax liabilities4,903 2,093 
Total liabilities29,122 15,411 
Stockholders’ equity (Note 9)
Common stock, $0.0001 par value; 110,000,000 shares authorized; 65,121,241 and 50,878,780 issued and outstanding as of September 30, 2021 and December 31, 2020, respectively
7 5 
Additional paid-in capital256,936 128,930 
Retained earnings18,699 22,793 
Accumulated other comprehensive income/(loss)(76)(4)
Total stockholders’ equity275,566 151,724 
Total liabilities and stockholders’ equity$304,688 $167,135 
The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.
1

GRID DYNAMICS HOLDINGS, INC.
UNAUDITED CONDENSED CONSOLIDATED STATEMENTS OF LOSS AND
COMPREHENSIVE LOSS
(In thousands, except per share data)
Three Months Ended September 30,Nine Months Ended
September 30,
2021202020212020
Revenue$57,933 $26,332 $144,743 $81,157 
Cost of revenue32,667 15,178 84,343 51,799 
Gross profit25,266 11,154 60,400 29,358 
Operating expenses
Engineering, research, and development2,132 2,076 5,687 7,193 
Sales and marketing4,073 2,245 9,942 7,451 
General and administrative17,091 8,504 43,195 26,606 
Total operating expenses23,296 12,825 58,824 41,250 
Income/(loss) from operations1,970 (1,671)1,576 (11,892)
Other income/(expenses), net114 455 (1,015)419 
Income/(loss) before income taxes2,084 (1,216)561 (11,473)
Provision/(benefit) for income taxes2,633 (99)4,655 (3,594)
Net loss$(549)$(1,117)$(4,094)$(7,879)
Foreign currency translation adjustments, net of tax(86) (72) 
Comprehensive loss$(635)$(1,117)$(4,166)$(7,879)
Loss per share
Basic$(0.01)$(0.02)$(0.07)$(0.18)
Diluted$(0.01)$(0.02)$(0.07)$(0.18)
Weighted average shares outstanding
Basic62,610 49,651 56,280 43,074 
Diluted62,610 49,651 56,280 43,074 
The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.
2

GRID DYNAMICS HOLDINGS, INC.
UNAUDITED CONSOLIDATED STATEMENT OF CONVERTIBLE PREFERRED STOCK AND STOCKHOLDERS’ EQUITY
(In thousands)
Convertible
Preferred Stock
Common StockAdditional
paid-in
capital
Retained
earnings
Accumulated
other
comprehensive
income/(loss)
Total
stockholders’
equity
SharesAmountSharesAmount
Balance at December 31, 2020 $ 50,879 $5 $128,930 $22,793 $(4)$151,724 
Net loss— — — — — (2,062)— (2,062)
Stock-based compensation— — — — 5,671 — — 5,671 
Exchange of warrants into common stock— — 2,221 — — — — — 
Exercise of stock options— — 41 — 162 — — 162 
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards— — 1,030 — (15,297)— — (15,297)
Foreign currency translation adjustment, net of tax— — — — — — 49 49 
Balance at March 31, 2021 $ 54,171 $5 $119,466 $20,731 $45 $140,247 
Net loss— — — — — (1,483)— (1,483)
Stock-based compensation— — — — 6,675 — — 6,675 
Exchange of warrants into common stock— — 271 — 918 — — 918 
Exercise of stock options— — 138 — 254 — — 254 
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards— — 149 — (3,564)— — (3,564)
Foreign currency translation adjustment, net of tax— — — — — — (35)(35)
Balance at June 30, 2021 $ 54,729 $5 $123,749 $19,248 $10 $143,012 
Net loss— — — — — (549)— (549)
Stock-based compensation— — — — 9,113 — — 9,113 
Exchange of warrants into common stock— — 4,188 1 48,205 — — 48,206 
Exercise of stock options— — 656 — 203 — — 203 
Issuance of common stock in July 2021 offering, net of transaction costs of $498
— — 5,470 1 77,812 77,813 
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards— — 78 — (2,146)— — (2,146)
Foreign currency translation adjustment, net of tax— — — — — — (86)(86)
Balance at September 30, 2021 $ 65,121 $7 $256,936 $18,699 $(76)$275,566 
3

GRID DYNAMICS HOLDINGS, INC.
UNAUDITED CONSOLIDATED STATEMENT OF CONVERTIBLE PREFERRED STOCK AND STOCKHOLDERS’ EQUITY
(In thousands)
(Continued)
Convertible
Preferred Stock
Common StockAdditional
paid-in
capital
Retained
earnings
Accumulated
other
comprehensive
income/(loss)
Total
stockholders’
equity
SharesAmountSharesAmount
Balance at December 31, 2019622 $9,187 12,847 $8,117 $10,535 $35,392 $ $54,044 
Retroactive application of recapitalization (Note 3)
426 — 8,797 (8,115)8,115 — —  
Adjusted balance beginning of period1,048 $9,187 21,644 $2 $18,650 $35,392 $ $54,044 
Net loss— — — — — (4,596)— (4,596)
Stock-based compensation— — — — 4,804 — — 4,804 
Conversion of preferred stock(1,048)(9,187)1,048 1 9,187 — — 9,188 
Consideration paid to Grid shareholders— — — — (123,865)— — (123,865)
ChaSerg shares recapitalized, net of transaction costs of $4,142
— — 28,088 2 204,323 — — 204,325 
Conversion of promissory note to common stock— — 53 — 530 — — 530 
Balance at March 31, 2020 $ 50,833 $5 $113,629 $30,796 $ $144,430 
Net loss— — — — — (2,166)— (2,166)
Stock-based compensation— — — — 3,654 — — 3,654 
Exercise of stock options— — 6 — 59 — — 59 
Balance at June 30, 2020 $ 50,839 $5 $117,342 $28,630 $ $145,977 
Net loss— — — — — (1,117)— (1,117)
Stock-based compensation— — — — 5,126 — — 5,126 
Exercise of stock options— — 6 — 19 — — 19 
Issuance of shares in connection with vested RSUs— — 15 — — — — — 
Balance at September 30, 2020 $ 50,860 $5 $122,487 $27,513 $ $150,005 
The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.
4

GRID DYNAMICS HOLDINGS, INC.
UNAUDITED CONDENSED CONSOLIDATED STATEMENT OF CASH FLOWS
(In thousands)
For the nine months ended
September 30,
20212020
Cash flows from operating activities
Net loss$(4,094)$(7,879)
Adjustments to reconcile net loss to net cash provided by operating activities:
Depreciation and amortization3,520 1,896 
Bad debt(17)398 
Deferred income taxes2,663 (4,519)
Stock-based compensation21,459 13,584 
Change in fair value of warrants979  
Changes in assets and liabilities:
Accounts receivable(10,549)(2,139)
Unbilled receivables(1,257)2,973 
Prepaid income taxes127 (822)
Prepaid expenses and other current assets(2,062)10 
Accounts payable676 (250)
Accrued liabilities16 (576)
Accrued compensation and benefits1,533 348 
Accrued income taxes848 110 
Other current liabilities813 (136)
Net cash provided by operating activities14,655 2,998 
Cash flows from investing activities
Purchase of property and equipment(3,016)(1,607)
Acquisition of Tacit, net of cash acquired (Note 4)(30,585) 
Net cash used in investing activities(33,601)(1,607)
Cash flows from financing activities
Cash received from ChaSerg 208,997 
GDI shares redeemed for cash (123,865)
Equity issuance costs (2,264)
Payments of tax obligations resulted from net share settlement of vested stock awards(21,007) 
Proceeds from exercises of stock options, net of shares withheld for taxes619 78 
Proceeds from exercise of public warrants48,145  
Proceeds related to issuance of Common Stock from July 2021 Offering78,311  
Payments for professional fees related to issuance of common stock from July 2021 Offering(498) 
Net cash provided by financing activities105,570 82,946 
Effect of exchange rate changes on cash and cash equivalents(72) 
Net increase in cash and cash equivalents86,552 84,337 
Cash and cash equivalents, beginning of period112,745 42,189 
Cash and cash equivalents, end of period$199,297 $126,526 
Supplemental disclosure of cash flow information:
Cash paid for income taxes$1,403 $1,370 
Supplemental disclosure of non-cash activities
Conversion of preferred stock to common stock$ $9,187 
Conversion of private warrants979  
Contingent consideration for acquisition of businesses$2,979 $ 
The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.
5

GRID DYNAMICS HOLDINGS, INC.
NOTES TO THE UNAUDITED CONDENSED CONSOLIDATED FINANCIAL STATEMENTS
(In thousands, except per share data)
Note 1 — Background and nature of operations
Grid Dynamics Holdings, Inc. (the “Company” or “GDH”) provides enterprise-level digital transformation in the areas of search, analytics, and release automation to Fortune 1000 companies. The Company’s headquarters and principal place of business is in San Ramon, California.
The Company was originally incorporated in Delaware on May 21, 2018 as a special purpose acquisition company under the name ChaSerg Technology Acquisition Corp. (“ChaSerg”) for the purpose of effecting a merger, capital stock exchange, asset acquisition, stock purchase, reorganization or similar business combination involving ChaSerg and one or more businesses. On March 5, 2020 (the “Closing”), the Company consummated its business combination with Grid Dynamics International, Inc. (“GDI”) pursuant to the Agreement and Plan of Merger (the “Merger Agreement”), dated November 13, 2019 (the “Business Combination”). In connection with the Closing, the Company changed its name from ChaSerg Technology Acquisition Corp. to Grid Dynamics Holdings, Inc. The Company’s common stock is now listed on the NASDAQ under the symbol “GDYN” and warrants to purchase the common stock at an exercise price of $11.50 per share were listed on the NASDAQ under the symbol “GDYNW” until they all were delisted on August 30, 2021 following redemption.
Unless the context otherwise requires, the “Company” refers to the combined company and its subsidiaries following the Business Combination, “ChaSerg” refers to the Company prior to the Closing, and “GDI” refers to GDI prior to the Closing. Refer to Note 3 for further discussion of the Business Combination.
Note 2 — Basis of presentation and summary of significant accounting policies
The following is a summary of the significant accounting policies consistently applied in the preparation of the accompanying consolidated financial statements.
Unaudited Interim Financial Statements
The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States (“U.S. GAAP”) for interim financial information and in accordance with the rules and regulations of the Securities and Exchange Commission (“SEC”). Accordingly, they do not include all of the information and footnotes required by U.S. GAAP for complete financial statements. The unaudited condensed consolidated financial statements reflect all normal and recurring adjustments that are, in the opinion of the Company’s management, necessary for the fair presentation of the results of operations for the interim periods. Operating results for the three and nine months ended September 30, 2021 are not necessarily indicative of the results that may be expected for the year ending December 31, 2021. These interim financial statements should be read in conjunction with GDH’s audited financial statements for the year ended December 31, 2020 included in the Company’s annual report on Form 10-K that the Company filed with the SEC on March 5, 2021.
Basis of presentation
The Business Combination was accounted for as a reverse recapitalization in accordance with U.S. GAAP. Although ChaSerg was the legal acquirer, for accounting purposes, GDI was deemed to be the accounting acquirer. GDI was determined to be the accounting acquirer based on evaluation of the following facts and circumstances:
GDI holds executive management roles for the Company and those individuals are responsible for the day-to-day operations;
GDI’s former owners have the largest minority voting rights in the Company;
From a revenue and business operation standpoint, GDI was the larger entity in terms of relative size;
GDI’s San Ramon, CA headquarters are the headquarters of the Company; and
The intended strategy of the Company will continue GDI’s strategy of driving enterprise-level digital transformation in the Fortune 1000 companies.

6

In conjunction with the Business Combination, outstanding shares of GDI were converted into common stock of the Company, par value $0.0001 per share, shown as a recapitalization, and the net assets of ChaSerg were acquired at historical cost, with no goodwill or other intangible assets recorded. GDI was deemed to be the predecessor of the Company, and the consolidated assets and liabilities and results of operations prior to the Closing (for the years ended December 31, 2019 and 2018 and the period from January 1, 2020 to March 5, 2020) are those of GDI. ChaSerg’s assets and liabilities, which include net cash from the trust of $85.1 million, and results of operations were consolidated with GDI beginning on the Closing.
In accordance with guidance applicable to these circumstances, the equity structure has been restated in all comparative periods up to the Closing Date, to reflect the number of shares of the Company’s common stock, $0.0001 par value per share, issued to GDI shareholders in connection with the recapitalization transaction. As such, the shares and corresponding capital amounts and earnings per share related to GDI preferred and common stock prior to the Business Combination have been retroactively restated as shares reflecting the exchange ratio established in the Business Combination.
Principles of consolidation
The accompanying condensed financial statements include the accounts of the Company and all of its subsidiaries that are directly or indirectly owned or controlled. Intercompany transactions and balances have been eliminated upon consolidation.
Use of estimates
The preparation of the consolidated condensed financial statements in accordance with U.S. GAAP requires the Company to make estimates and assumptions that affect the amounts reported in the condensed consolidated financial statements and accompanying notes. Actual results could differ from these estimates and such differences could be material. Significant estimates include allowances for receivables, calculation of accrued liabilities, capitalization of internally developed software, stock-based compensation, contingent consideration payable, determination of fair value, useful lives and recoverability of intangible assets and goodwill, determination of provision for income taxes and uncertain tax positions.
Certain significant risks and uncertainties
The Company is subject to risks, including but not limited to customer concentration, concentrations of credit and foreign currency risks. Refer to the section below for additional information. Additionally, the Company has been impacted by the coronavirus (“COVID-19”) pandemic. The global pandemic of COVID-19 has negatively affected the U.S. and global economy, disrupted global supply chains, resulted in significant travel and transport restrictions, including mandated closures and orders to “shelter-in-place,” and created significant disruption of the financial market. In 2020 the COVID-19 pandemic impacted the Company’s revenues, and the Company’s business continues to be exposed to risks and uncertainties related to the pandemic. The impact of the COVID-19 pandemic had been more pronounced with the Company’s retail customers, which depended on keeping their stores open. Additionally, in situations where the Company’s customers encountered financial difficulties, there was a risk associated with the Company’s inability to collect money from customers. In 2020 the Company took several actions to deal with the COVID-19 pandemic. These included enabling its employees to work from home, company-wide salary and compensation cuts, hiring freezes, and suspending all non-essential travel. Some of these actions such as working from home as well as suspending all non-essential travel continues to be currently in place. As the Company's business recovered in 2021, the Company discontinued some of the cost saving measures such as compensation cuts and hiring freezes. The Company now is facing the opposite challenges including employee retention and shortage of talent on the job market. The ultimate impact and the extent to which the COVID-19 pandemic will continue to affect the business, results of operation and financial condition is difficult to predict and depends on numerous evolving factors outside of the Company’s control including: the duration and scope of the pandemic, including from renewed waves and new variants; government, social, business and other actions that have been and will be taken in response to the pandemic; and the effect of the pandemic on short and long-term general economic conditions.
Concentrations of credit risk and significant customers
The Company records its accounts receivable and unbilled receivables at their face amounts less allowances. Accounts receivable and unbilled receivables are generally dispersed across the Company’s customers in proportion to their revenue. Two customers individually exceeded 10% of the Company’s accounts receivable balance as of September 30, 2021 and three customers individually exceeded 10% of the Company’s accounts receivable balance as of December 31, 2020. Two customers individually exceeded 10% of the unbilled receivables as of September 30, 2021 and three customers individually exceeded 10% of the unbilled receivables as of December 31, 2020. Two customers individually accounted for greater than 10% of the sales for the three and nine months ended September 30, 2021 and 2020, respectively.
7

Cash and cash equivalents
The Company considers cash equivalents to be highly liquid investments with original maturities of three months or less from the date of purchase. Cash equivalents are stated at cost, which approximates fair value. At times, cash deposits with banks may exceed federally insured limits.
Accounts receivable and allowance for doubtful accounts
Accounts receivable, less allowance for doubtful accounts, reflect the net realizable value of receivables and approximate fair value. The Company maintains an allowance against accounts receivable for the estimated probable losses on uncollectible accounts. The allowance is based upon historical loss experience, current economic conditions within the industries the Company serves as well as determination of the specific risk related to certain customers. Accounts receivable are charged off against the reserve when, in management’s estimation, further collection efforts would not result in a reasonable likelihood of receipt.
As of
September 30,
2021
December 31,
2020
(in thousands)
Trade accounts receivable$31,027 $17,308 
Allowance for doubtful accounts(254)(418)
Total trade accounts receivable, net$30,773 $16,890 
Unbilled receivables
Generally, the Company will not bill customers until the services have been completed. From time-to-time, a service period may overlap with a period-end and the unbilled receivables represent amounts for services performed through period-end, but not yet billed. The unbilled receivable represents the amount expected to be billed and collected for services performed through period-end in accordance with contract terms. The unbilled receivables balances were $4.9 million and $1.8 million as of September 30, 2021 and December 31, 2020, respectively.
Goodwill
Goodwill represents the excess of purchase price over the fair value of the net assets of businesses acquired. On an annual basis, the Company makes a qualitative assessment to determine if it is more likely than not that the fair value of the reporting unit is less than its carrying amount, including goodwill. If the Company determines that the fair value of the reporting unit is less than its carrying amount, it will perform a quantitative analysis; otherwise, no further evaluation is necessary. For the quantitative impairment assessment, the Company compares the fair value of the reporting unit to its carrying value, including goodwill. The Company uses the discounted cash flow method of the income approach and market approach to determine the fair value of the reporting unit. If the fair value of the reporting unit exceeds the carrying value of the net assets assigned to that unit, goodwill is not impaired, and no further testing is performed. If the carrying value of the net assets assigned to the reporting unit exceeds the fair value of the reporting unit, then the Company will recognize a loss equal to the excess, limited to the total amount of goodwill allocated to that reporting unit. Impairments, if any, are charged directly to earnings. As of September 30, 2021, the Company has a single reporting unit and determined there were no indicators of impairment.
Intangible assets
Finite-lived intangible assets are stated at cost less accumulated amortization. Amortization is computed on the straight-line basis over the asset’s useful lives ranging between 2 and 12 years. Intangible assets are evaluated for impairment whenever events or changes in circumstances indicate that the carrying value of the assets may not be fully recoverable. If facts and circumstances indicate that the carrying value might not be recoverable, projected undiscounted net cash flows associated with the related asset or group of assets over their estimated remaining useful lives is compared against their respective carrying amounts. If an asset is found to be impaired, the impairment charge will be measured as the amount by which the carrying amount of an entity exceeds its fair value. As of September 30, 2021, the Company determined there were no indicators of impairment.
8

Revenue recognition
The Company accounts for a contract with a customer when 1) the parties to the contract have approved the contract and are committed to performing their respective obligations, 2) the contract identifies each party’s rights regarding the goods or services to be transferred, 3) the contract identifies the payment terms for the goods or services to be transferred, 4) the contract has commercial substance, and 5) collection of substantially all consideration pursuant to the contract is probable.
The Company derives its revenue from offering a suite of digital engineering and information technology (“IT”) consulting services, including digital transformation strategy, emerging technology, lean labs and legacy system replatforming. For most contracts, the Company uses master agreements to govern the overall relevant terms and conditions of the business arrangement between the Company and its customers. When the Company and a customer enter into a Master Services Agreement (“MSA”), purchases are generally made by the customer via a statement of work (“SOW”) which explicitly references the MSA and specifies the services to be delivered. Fees for these contracts may be in the form of time-and-materials or fixed-fee arrangements. The majority of the Company’s revenues are generated under time-and-material contracts which are billed using hourly rates to determine the amounts to be charged directly to the customer. Fees are billed and collected as stipulated in the contract, and revenue is recognized as services are performed. If there is an uncertainty about the receipt of payment for the services, revenue is recognized to the extent that a significant reversal of revenue would not be probable.
Consulting services revenue is a single performance obligation earned through a series of distinct daily services and may include services such as those described above. The Company recognizes revenue for services over time as the customer simultaneously receives and consumes the benefits as the Company performs IT consulting services. For revenue contracts, the customer derives value from the Company providing daily consulting services, and the value derived corresponds to the labor hours expended. Therefore, the Company measures the progress and recognizes revenue using an effort-based input method. For fixed fee contracts, the Company recognizes revenue as the work is performed, the monthly calculation of which is based upon actual labor hours incurred and level of effort expended throughout the duration of the contract.
For time-and-material contracts, the Company applies the variable consideration allocation exception. Therefore, instead of allocating the variable consideration to the entire performance obligation, the Company determined the variable consideration should be allocated to each distinct service to which the variable consideration relates, which is providing the customer daily consulting services. The Company also offers volume discounts or early settlement discounts. Volume discounts apply once the customer reaches certain contractual spend thresholds. Early settlement discounts are issued contingent upon the timing of the payment from the customer. If the consideration promised in a contract includes a variable amount, the Company only includes estimated amounts of consideration in the transaction price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. These estimates may require management to make subjective judgments and to make estimates about the effects of matters inherently uncertain. The determination of whether to constrain consideration in the transaction price are based on information (historical, current and forecasted) that is reasonably available to the Company, taking into consideration the type of customer, the type of transaction and the specific facts and circumstances of each arrangement. Although the Company believes that its approach in developing estimates and its reliance on certain judgments and underlying inputs is reasonable, actual results may differ from management’s estimates, judgments and assumptions. These estimates have historically not been material to the consolidated financial statements.
Remaining performance obligation
ASC 606 requires that the Company disclose the aggregate amount of transaction price that is allocated to performance obligations that have not yet been satisfied as of September 30, 2021. This disclosure is not required for:
1)contracts with an original duration of one year or less, including contracts that can be terminated for convenience without a substantive penalty,
2)contracts for which the Company recognizes revenues based on the right to invoice for services performed,
3)variable consideration allocated entirely to a wholly unsatisfied performance obligation or to a wholly unsatisfied promise to transfer a distinct good or service that forms part of a single performance obligation in accordance with ASC 606-10-25-14(b), for which the criteria in ASC 606-10-32-40 have been met, or
4)variable consideration in the form of a sales-based or usage-based royalty promised in exchange for a license of intellectual property.
All of the Company’s contracts met one or more of these exemptions as of September 30, 2021.
9

Stock-based compensation expense
Stock-based compensation expense is measured based on the grant-date fair value of the share-based awards. Forfeitures are recognized as incurred. The Company estimates stock options grant-date fair value using the Black-Scholes-Merton option pricing model. The model requires management to make a number of key assumptions including expected volatility, expected term, risk-free interest rate, and expected dividends. The Company evaluates the assumptions used to value its share-based awards on each grant date. The fair market value of Grid Dynamics stock is determined based on the closing price on NASDAQ on the measurement date. The Company amortizes the grant-date fair value of all share-based compensation awards over the employee’s requisite service period for the entire award on a straight-line basis, which is generally the vesting period. For an award with graded vesting that is subject only to a service condition (e.g., time-based vesting), the Company uses the straight-line attribution method under ASC 718 under which they recognize compensation cost on a straight-line basis over the total requisite service period for the entire award (i.e., over the requisite service period of the last separately-vesting tranche of the award). Additionally, the Company applies the “floor” concept so that the amount of compensation cost that is recognized as of any date is at least equal to the grant-date fair value of the vested portion of the award on that date. That is, if the straight-line expense recognized to date is less than the grant date fair value of the award that is legally vested at that date, the company will increase its recognized expense to at least equal the fair value of the vested amount. Refer to Note 10 — Stock-based compensation for additional information.
Income taxes
The Company follows the asset and liability method of accounting for income taxes. Under this method, deferred income taxes are recognized for the tax consequences of temporary differences between the financial statement carrying amounts and the tax basis of the assets and liabilities. The determination of the provision for income taxes requires significant judgment, the use of estimates and the interpretation and application of complex tax laws. The provision for income taxes reflects a combination of income earned and taxed in the various U.S. federal and state, international and other jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for tax contingencies or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective tax rate.
In assessing the realizability of deferred tax assets, management considers whether it is more likely than not that some portion, or all, of the deferred tax assets will not be realized. Management considers all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes prior earnings history, the scheduled reversal of deferred tax liabilities, projected future taxable income, carryback and carryforward periods of tax attributes, and tax planning strategies that could potentially enhance the likelihood of realization of a deferred tax asset in making this assessment. The weight given to the positive and negative evidence is commensurate with the extent to which the evidence may be objectively verified.
The Company evaluates for uncertain tax positions at each balance sheet date. When it is more likely than not that a position will be sustained upon examination by a tax authority that has full knowledge of all relevant information, the Company measures the amount of tax benefit from the position and records the largest amount of tax benefit that is greater than 50% likely of being realized after settlement with a tax authority. The Company’s policy for interest and/or penalties related to underpayments of income taxes is to include interest and penalties in income tax expense.
Recently adopted accounting pronouncements
Changes to U.S. GAAP are established by the Financial Accounting Standards Board (the “FASB”), in the form of Accounting Standards Updates (“ASUs”), to the FASB’s ASC. The Company has elected not to opt out of the extended transition period and thus when a standard is issued or revised and it has different application dates for public or private companies, the Company, as an emerging growth company, can adopt the new or revised standard at the time private companies adopt the new or revised standard.
In December 2019, the FASB issued Accounting Standard Update No. 2019-12, Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes (ASU 2019-12), which simplifies the accounting for income taxes by removing certain exceptions to the general principles and also simplification of areas such as franchise taxes, step-up in tax basis goodwill, separate entity financial statements and interim recognition of enactment of tax laws or rate changes. The update is effective for fiscal years and interim periods within those fiscal years beginning after December 15, 2020, and early adoption is permitted. The Company adopted the standard as of January 1, 2021 and has determined that the adoption of this guidance did not have a material effect on the consolidated financial statements.
10

Recently issued accounting pronouncements
The Company considered the applicability and impact of all ASUs. ASUs not listed below were assessed and determined to be either not applicable or are expected to have minimal impact on the consolidated financial statements.
In February 2016, the FASB issued ASU No. 2016-2, Leases. ASU 2016-2 requires lessees to put most leases on their balance sheet while recognizing expense in a manner similar to existing accounting. ASU 2016-2 states that a lessee would recognize a lease liability for the obligation to make lease payments and a right-to-use asset for the right to use the underlying asset for the lease term. The standard allows for two methods of adoption to recognize and measure leases: retrospectively to each prior period presented in the financial statements with the cumulative effect of initially applying the guidance recognized at the beginning of the earliest comparative period presented or retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. Both adoption methods include a number of optional practical expedients that entities may elect to apply. The Company will adopt the standard retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. The new accounting guidance is effective for the Company for fiscal periods beginning after December 15, 2021. The Company expects the impact to be material but has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.
In June 2016, the FASB issued ASU 2016-13, Financial Instruments-Credit Losses (Topic 326) — Measurement of Credit Losses on Financial Instruments. Topic 326 was subsequently amended by ASU 2019-4, Codification Improvements to Topic 326, Financial Instruments — Credit Losses, ASU 2019-5, Financial Instruments — Credit Losses (Topic 326): Targeted Transition Relief, and clarified the guidance with the release of ASU 2020-2 Financial Instruments—Credit Losses (Topic 326) and Leases (Topic 842). These ASUs replace the current incurred loss impairment methodology with a methodology that reflects expected credit losses measured at amortized cost and certain other instruments, including loans, held-to-maturity debt securities, net investments in leases, and off-balance sheet credit exposures. The update is effective for fiscal years beginning after December 15, 2022, and interim periods with fiscal years after December 15, 2022. The Company has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.
In March 2020, FASB issued ASU No. 2020-3, Codification to Financial Instruments. This ASU improves and clarifies various financial instruments topics, including the current expected credit losses standard issued in 2016. The ASU includes seven different issues that describe the areas of improvement and the related amendments to U.S. GAAP, intended to make the standards easier to understand and apply by eliminating inconsistencies and providing clarifications. The amendments related to Issue 1, Issue 2, Issue 3, Issue 4, and Issue 5 were effective upon issuance of this update. The new guidance did not have a material impact on the consolidated financial statements. The amendments related to Issue 6 and Issue 7 are effective for the Company the earlier of January 1, 2023 or when the Company adopts ASU 2016-13, if early adopted. The Company is currently evaluating the impact these topics will have on the consolidated financial statements.
Note 3 – Business combination
On March 5, 2020, ChaSerg consummated its business combination with GDI pursuant to the Merger Agreement. Immediately following the Business Combination, there were 50.8 million shares of common stock with a par value of $0.0001, and 11.3 million warrants outstanding.
GDI began operations in September 2006 to provide next-generation e-commerce platform solutions in the areas of search, analytics, and release automation to Fortune 1000 companies. Under ASC 805, Business Combinations, GDI was deemed the accounting acquirer, and the Business Combination was accounted for as a reverse recapitalization, with no goodwill or other intangible assets recorded in accordance with U.S. GAAP. ChaSerg was treated as the “acquired” company for financial reporting purposes. Accordingly, for accounting purposes, the Business Combination was treated as the equivalent of GDI issuing stock for the net assets of ChaSerg, accompanied by a recapitalization. The net assets of ChaSerg were stated at historical cost, with no goodwill or other intangible assets recorded. Reported shares and earnings per share available to holders of the Company’s common stock, prior to the Business Combination, have been retroactively restated as shares reflecting the exchange ratio established in the Business Combination (approximately 1.685 GDH shares to 1.0 GDI share).
The aggregate consideration for the Business Combination was $396.5 million, consisting of $130.0 million in cash and 27.0 million shares of ChaSerg’s common stock valued at $10.19 per share, less a post-Closing share adjustment amount of 0.9 million shares which were placed in escrow post-Closing. The shares transferred at Closing included 4.3 million options to purchase the Company’s shares that were vested, outstanding and unexercised, which were determined using 1.7 million vested options at Closing converted at an exchange ratio of approximately 2.48. Additionally, 0.4 million options to purchase the
11

Company’s common stock that were unvested, outstanding and unexercised were assumed by the Company, which were determined using 0.1 million unvested options at Closing converted at an exchange ratio of approximately 2.48. The following represents the aggregate consideration for the Business Combination ( in thousands except for per share amount):
Shares transferred at Closing27,006 
Less: Post-Closing share adjustment(857)
Total shares transferred at Closing26,149 
Value per share$10.19 
Total share consideration$266,459 
Plus: Cash transferred to GDI stockholders130,000 
Closing merger consideration$396,459 
In connection with the Closing, 0.1 million shares of common stock were redeemed at a price per share of approximately $10.21.
In connection with the Business Combination, the Company incurred direct and incremental costs of approximately $4.7 million, consisting of legal and professional fees, of which $4.1 million were related to equity issuance costs and recorded to additional paid-in capital as a reduction of proceeds and $0.6 million were recorded to general and administrative expenses.
In connection with the Business Combination, all outstanding retention bonus obligations from a 2017 acquisition totaling $3.4 million were accelerated and paid in full to Grid Dynamics’ personnel immediately prior to the Closing and were recorded in cost of revenue and operating expenses in the consolidated financial statements.
Note 4 — Acquisition of Tacit Knowledge Inc.
On May 29, 2021, the Company acquired 100% of the equity interest of the global consultancy company Tacit Knowledge Inc. (“Tacit”). Founded in 2002, Tacit is a global provider of digital commerce solutions, serving customers across the UK, North America, Continental Europe, and Asia. The acquisition of Tacit added approximately 180 employees to the Company's headcount. The acquisition will augment the Company's service offerings and will strengthen its competitive position within the market. Additionally, the acquisition will also enable the Company to leverage near-shore capabilities with Tacit’s presence in Mexico.
The total purchase consideration is $37.0 million and consists of cash consideration of $33.6 million paid at closing and fair value of the contingent consideration at the date of the acquisition of $3.4 million. The maximum amount of potential contingent cash consideration is $5.0 million. The contingent consideration is payable based on revenue and EBITDA metrics to be achieved by Tacit within 12 months. The Company recorded a liability for the contingent consideration amount based on the Company’s best estimate of the fair value of the expected payout.
The primary areas of the preliminary purchase price allocations that have not been finalized relate to the finalization of working capital, the valuation and useful lives of intangible assets, the valuation of the contingent consideration ("earn-out"), and the deferred tax liabilities. Upon completion of the fair value assessment, the Company anticipates that the ultimate intangible assets may differ from the preliminary assessment outlined above. Any change in the finalization of working capital will reduce or increase the cash consideration. Any changes to the preliminary estimates of the fair value of the and intangible assets or contingent consideration ("earn-out") will be adjusted to goodwill during the measurement period, with subsequent changes in estimates recorded in the Company’s Consolidated Statements of Loss and Comprehensive Loss.

12

The purchase price of Tacit has been preliminarily allocated to the assets acquired and liabilities assumed based on their estimated respective fair values as of May 29, 2021 with the excess purchase price allocated to goodwill. The Company’s preliminary allocation of the purchase price to the net tangible and intangible assets acquired and liabilities assumed is as follows (in thousands):
Fair market values
Current assets (including $2,967 of cash)
$9,145 
Property, plant and equipment466 
Customer relationships11,737 
Tradename1,176 
Goodwill20,603 
Total assets acquired$43,127 
Accounts payable and accrued expenses$(3,675)
Deferred taxes(2,500)
Total liabilities assumed$(6,175)
Purchase price allocation$36,952 
The preliminary fair value of identifiable intangible assets as of the date of acquisition is as follows:
(In thousands)Fair ValueUseful LifeAmortization
method
Customer relationships$11,737 12 yearsStraight-line
Tacit tradename1,176 4 yearsAccelerated
Total identified intangible assets$12,913 
As a result of the acquisition, the Company recognized a total of $20.6 million of goodwill. The purchase price was assigned to assets acquired and liabilities assumed based on their estimated fair values as of the date of acquisition, and any excess was allocated to goodwill, as shown in the table above. Goodwill represents the value the Company expects to achieve through the implementation of operational synergies and growth opportunities as the Company expands its global reach. The goodwill is not deductible for income tax purposes. 
The Company used various valuation techniques to determine fair value, with the primary techniques being discounted cash flow analysis, relief-from-royalty, and multi-period excess earnings valuation approaches, which use significant unobservable inputs, or Level 3 inputs, as defined by the fair value hierarchy. Under these valuation approaches, the Company is required to make estimates and assumptions about sales, operating margins, growth and attrition rates, royalty rates and discount rates based on budgets, business projections, anticipated future cash flows, and marketplace data.
The acquisition of Tacit was accounted for using the acquisition method of accounting, and consequently, the results of operations for Tacit are reported in the consolidated financial statements from the date of acquisition. Tacit revenue was approximately $9.5 million and net income was approximately $1.7 million from the date of acquisition to September 30, 2021.
The following unaudited pro forma information presents the combined results of operations as if the acquisition of Tacit had occurred at the beginning of 2020. Tacit pre-acquisition results have been added to the Company’s historical results. The pro forma results contained in the table below include adjustment for amortization of acquired intangibles. Any potential cost savings or other operational efficiencies that could result from the acquisition are not included in these pro forma results. 
The 2021 pro forma results include transaction related expenses incurred by the Company prior to the acquisition of $0.6 million including items such as consultant fees and other deal costs.
13

These pro forma results have been prepared for comparative purposes only and are not necessarily indicative of the results of operations as they would have been had the acquisitions occurred on the assumed dates, nor are they necessarily an indication of future operating results.
Nine Months Ended
September 30,
(Unaudited)20212020
Revenue$152,775 $92,462 
Net loss$(2,304)$(8,156)
Diluted loss per share$(0.04)$(0.19)
Note 5 — Property and equipment, net
Property and equipment consist of the following (in thousands):
Estimated
Useful
Life
(In Years)
As of
September 30,
2021
December 31,
2020
Computers and equipment
2-5
$9,241 $6,447 
Machinery and automobiles5631 551 
Furniture and fixtures
3-7
1,012 643 
Software5513 554 
Leasehold improvements
3-12
526 236 
11,923 8,430 
Less: Accumulated depreciation and amortization(7,798)(5,622)
4,125 2,809 
Capitalized software development costs
2-3
4,394 3,531 
Less: Accumulated amortization(3,124)(2,245)
1,270 1,287 
Property and equipment, net$5,395 $4,095 

Note 6 — Intangible assets, net
Intangible assets consist of the following (in thousands):
Estimated
Useful Life
(In Years)
As of
September 30,
2021
December 31,
2020
Customer relationships
8-12
$15,971 $4,234 
Tradename
4-10
4,676 3,500 
Non-compete agreements2440 440 
21,087 8,174 
Less: Accumulated amortization(1,358)(49)
Intangible assets, net$19,729 $8,125 

0
14

Note 7 — Other current liabilities
The components of other current liabilities were as follows (in thousands):
As of
September 30, 2021December 31, 2020
Customer deposits$781 $731 
Other liabilities2,068 528 
Contingent consideration payable4,926 1,947 
Total other current liabilities$7,775 $3,206 
In connection with the acquisition of Daxx Web Industries B.V.("Daxx") on December 14, 2020, the Company recorded a contingent consideration payable, which is a post-closing earn-out consideration, estimated based on fair value of $1.9 million. During the third quarter of 2021 the Company made an adjustment to the fair value of the earn-out consideration that resulted in recognition of $0.4 million of income that was classified as Other income/(expenses), net in unaudited condensed consolidated statement of loss and comprehensive loss. In connection with the acquisition of Tacit on May 29, 2021, the Company recorded a contingent consideration payable, which is a post-closing earn-out consideration, estimated based on fair value of $3.4 million.
As of September 30, 2021 the Company had payable to one of its related parties in the amount of $1.1 million that was classified as Other current liabilities in unaudited condensed consolidated balance sheet.
Note 8 — Income taxes
The Company recorded income tax expense of $2.6 million and income tax benefit of $(0.1) million for the three months ended September 30, 2021 and 2020, respectively. The Company’s effective tax rate was 126.3% and 8.1% for the three months ended September 30, 2021 and 2020, respectively. The increase in effective tax rate for the three months ended September 30, 2021, as compared to the same periods in 2020 was attributable mainly to Section 162 (m) compensation deduction limitations partially offset by stock-based compensation excess tax benefit. The Company recorded income tax expense of $4.7 million and income tax benefit of $(3.6) million for the nine months ended September 30, 2021 and 2020, respectively. The Company’s effective tax rate was 829.8% and 31.3% for the nine months ended September 30, 2021 and 2020, respectively. The increase in effective tax rate for the nine months ended September 30, 2021, as compared to the same periods in 2020 was attributable mainly to Section 162 (m) compensation deduction limitations partially offset by stock-based compensation excess tax benefit. Additionally, the United Kingdom’s (“UK”) recently enacted Finance Act 2021 has increased its corporate tax rate to 25% for companies with profits exceeding 250,000 pounds, effective beginning April 1, 2023. As a result of this change in tax law, the Company remeasured its UK deferred taxes which resulted in a $0.5 million discrete tax expense in the nine months ended September 30, 2021. For the three and nine months ended September 30, 2021, the Company used a discrete effective tax rate method to calculate income taxes due to sensitivity of the forecast. Through June 30, 2021, the Company determined that small changes in estimated “ordinary” income would result in significant changes in the estimated annual effective tax rate causing material distortion in the year-to-date tax provision. As of September 30, 2021, the Company is unable to produce a reliable estimate of ordinary income for the quarter and year ending 2021 due to the inability to reliably or accurately forecast fourth quarter 2021 operating expenses. Similarly, for the three and nine months ended September 30, 2020, due to uncertainties created by the COVID-19 pandemic, the Company’s estimated annual effective tax rate method would not provide a reliable estimate and therefore was not used.
Note 9 — Stockholders’ equity
The following description summarizes the material terms and provisions of the securities that the Company has authorized.
Common stock
The Company is authorized to issue 110.0 million shares of common stock. At Closing, March 5, 2020, the Company had issued 50.8 million shares of common stock. As of September 30, 2021 the Company had 65.1 million shares of common stock that were outstanding.
On July 6, 2021, the Company concluded a follow-on public offering of 11.6 million shares of its common stock, which included 5.5 million shares offered by Grid Dynamics and 6.1 million shares offered by certain selling stockholders, at a price
15

to the public of $15.03 per share. These amounts included shares sold upon exercise in full of the underwriters' option to purchase additional shares. J.P. Morgan Securities, LLC, William Blair & Company, L.L.C. and Cowen and Company, LLC acted as joint book-running managers for the offering. Needham & Company, LLC and Cantor Fitzgerald & Co. acted as co-managers for the offering. The net proceeds from this offering for the company, after deducting underwriting discounts and commissions and estimated offering expenses, were $78.3 million. The Company did not receive any proceeds from the sale of the shares by the selling stockholders.
Preferred Stock
As of December 31, 2019 GDI had 1.0 million shares of no par value shares of preferred stock outstanding convertible on a 1:1 basis with GDI’s common stock. At the Closing, the preferred stock outstanding was converted into common stock of the Company, par value $0.0001 per share.
Founders and underwriter shares subject to earnout provisions
At the Closing, the Company had 1.2 million shares of common stock issued and outstanding subject to earnout provisions (the “Earnout Shares”). The Earnout Shares were subject to transfer restrictions and the owners of the Earnout Shares could not sell, transfer, or otherwise dispose of their respective shares until the respective earnout provisions were achieved as described further below. The Earnout Shares have full ownership rights including the right to vote and receive dividends and other distributions thereon. Dividends and other distributions are not subject to forfeiture in accordance with the Amended and Restated Sponsor Share Letter filed with the SEC on January 26, 2020. The Earnout Shares were eligible to vest and were no longer subject to the transfer restrictions as follows:
399,999; 400,000; and 400,001 Earnout Shares would vest if the closing price of the Company’s common stock on the principal exchange on which the securities are listed or quoted have been at or about $12.00; $13.50; and $15.00 per share, respectively, for 20 trading days (which need not be consecutive) over a thirty-trading day period at any time.
As of December 31, 2020, none of the Earnout Shares were vested. On January 20, 2021, 399,999 Earnout Shares vested and are no longer subject to transfer restrictions. On March 2, 2021, 400,000 Earnout Shares vested and are no longer subject to transfer restrictions. On March 29, 2021, 400,001 Earnout Shares vested and are no longer subject to transfer restrictions. Accordingly, as of March 29, 2021, all of the Earnout Shares have vested.
Warrants
On April 12, 2021, the Staff of the SEC issued the “Staff Statement on Accounting and Reporting Considerations for Warrants Issued by Special Purpose Acquisition Companies (“SPACs”)” (the “Staff Statement”). The Staff Statement provided new guidance for all SPAC-related companies regarding the accounting and reporting for their warrants that could result in the warrants issued by SPACs being classified as a liability measured at fair value, with non-cash fair value adjustments reported in earnings at each reporting period. The Company reviewed the accounting for both its public warrants and private warrants following the Staff Statement. The Company determined that the accounting for its public warrants as equity was consistent with the Staff Statement. The Company determined that its private warrants should be accounted for as liabilities but that the related accounting errors during the year ended December 31, 2020 were not material to the required financial statements and disclosures included in its annual report on Form 10-K filed on March 5, 2021. In the three months ended March 31, 2021, the Company began accounting for the private warrants correctly, as disclosed in its quarterly report on Form 10-Q filed on May 6, 2021. During the second and third quarter of 2021, all remaining private warrants were exchanged to common stock.
From July 23, 2021 to July 26, 2021, 1.4 million public warrants were exercised with cash proceeds of $16.4 million. On July 28, 2021, the Company announced the redemption of its 2.8 million then outstanding public warrants. Any public warrants not exercised prior to 5:00 p.m., New York City time, on August 30, 2021 were redeemed at that time for $0.01 per warrant. The public warrants were exercisable at a price of $11.50 per share. Of the total of 2.8 million warrants outstanding on July 28, 2021, 2.75 million were exercised and cash proceeds generated from these exercised warrants were approximately $31.7 million. Pursuant to the terms of the agreements governing the rights of the holders of the public warrants, the Company redeemed the remaining unexercised and outstanding 19,744 public warrants on August 30, 2021 for a redemption price of $0.01 per public warrant.
As of September 30, 2021, there were no outstanding private or public warrants.  

16



Note 10 — Stock-based compensation
2018 Stock Plan
GDI had previously adopted a stock plan in 2018 (the “2018 Stock Plan”). Under the terms of the 2018 Stock Plan, certain option grants were accelerated in full or by an additional 12 months as a result of the Business Combination. Therefore, on the date of Closing, the acceleration of vesting for 2.6 million stock options resulted in a stock compensation charge and corresponding increase to additional paid-in capital of $2.5 million. Additionally, at Closing, a percentage of outstanding vested GDI stock options were settled in exchange for cash consideration, pursuant to the terms of the Merger Agreement.
The remaining portion of outstanding vested options totaling 1.7 million and all unvested options totaling 0.1 million were automatically assumed and converted into options to purchase the Company’s common stock as of the Closing. The number of each participant’s assumed options and the exercise price were adjusted as provided in the Merger Agreement. There was no incremental compensation cost attributable to the incremental fair value of the modified options compared to the original options on the modification date. The assumed stock options will continue to be subject to the same terms and conditions, including vesting schedule terms, in accordance with the 2018 Stock Plan. Exercise prices for 2018 Stock Plan options range between $3.51 and $3.54 per share.

The following table sets forth the activity for the 2018 Stock Plan, including the conversion of the vested and unvested options, for the nine months ended September 30, 2021:
Options
Outstanding, in thousands
Balance at December 31, 20192,734 
Cashed out(829)
Forfeited(19)
Balance at March 31, 2020 (prior to exchange ratio conversion)1,887 
Converted vested balance4,314 
Converted unvested balance364 
Balance at March 6, 2020 (post to exchange ratio conversion)4,678 
Exercised in 2020(28)
Forfeited/Cancelled in 2020(50)
Options Outstanding as of December 31, 20204,600 
Exercised in quarter ended March 31, 2021(37)
Forfeited/Cancelled in quarter ended March 31, 2021(11)
Options Outstanding as of March 31, 20214,552 
Exercised in quarter ended June 30, 2021(257)
Forfeited/Cancelled in quarter ended June 30, 2021(3)
Options Outstanding as of June 30, 20214,291 
Exercised in quarter ended September 30, 2021(687)
Forfeited/Cancelled in quarter ended September 30, 2021(1)
Options Outstanding as of September 30, 20213,603 
As of September 30, 2021, a total of 0.07 million shares were forfeited, and 1.01 million shares were exercised for the total proceeds of $2.1 million in cash and 0.25 million shares net withheld for exercise price and taxes. The number of shares exercisable as of September 30, 2021 was 3.5 million with the average exercise price $3.54 per share. The intrinsic value of the 3.6 million total outstanding shares of 2018 Plan Options as of September 30, 2021, was $92.5 million with the remaining contractual term of 7.23 years. The unrecognized compensation expenses related to 2018 Plan options as of September 30, 2021 was $0.2 million, net of forfeitures, to be expensed on a straight-line basis over 1.93 years.
17

2020 Equity Incentive Plan
Effective March 5, 2020, our board of directors approved an equity incentive plan (the “2020 Plan”). The 2020 Plan permits the Company to grant a maximum aggregate amount of 16.3 million Incentive Stock Options, Non-Statutory Stock Options (“NSOs”), Restricted Stock, Restricted Stock Units (“RSUs”), Stock Appreciation Rights, Performance Units (“PSUs”), and Performance Shares (“PSAs”) (collectively, the “Awards”) to employees, directors, and consultants of the Company. Our board of directors or any committee appointed by the board has the authority to grant Awards. During the quarter ended September 30, 2021, our board of directors granted 0.32 million NSOs and 0.04 million RSUs. The following table represent the number of shares available for grants from 2020 Equity Incentive Plan (in thousands):
Available
for grant
Available for grant, December 31, 20209,881 
Options granted(546)
RSU granted(47)
PSU granted (100% target)(566)
Options, RSUs, and PSUs forfeited669 
Traded for taxes (returned to the pool)1,513 
Available for grant, September 30, 202110,904 
Stock Options
The total of 0.32 million NSOs shares granted during the quarter ended September 30, 2021 from 2020 Equity Incentive Plan are subject to the following time-based vesting conditions: one-fourth of the NSOs will vest on one year after the grant date; and thereafter one-sixteenth of the NSOs will vest each subsequent three-month anniversary. The NSOs have a 10-year expiration term, and once the NSOs are vested, the recipients have the right to purchase the Company’s stock at a fixed exercise price.
The grant date fair value of each NSO was estimated on the date of grant using the Black-Scholes-Merton option pricing model. The key assumptions for 2021 grants are provided in the following table.

2021
Dividend yield0 %
Expected volatility40 %
Risk-free interest rate0.87 %
Expected term in years6.11
Grant date fair value of common stock$18.60 
The Company used a zero percent dividend yield assumption for all Black-Scholes-Merton stock option-pricing calculations. Since the Company’s shares were not publicly traded prior to the Closing and its shares were rarely traded privately, expected volatility is estimated based on the average historical volatility of similar entities with publicly traded shares. The risk-free rate for the expected term of the options is based on the U.S. Treasury yield curve at the date of grant. Expected term is estimated using the simplified method, which takes into account vesting and contractual term. The simplified method is being used to calculate expected term instead of historical experience due to a lack of relevant historical data resulting from changes in option vesting schedules and changes in the pool of employees receiving option grants.
18

The following table summarizes option activity for the nine months ended September 30, 2021 (shares in thousands):
Shares
Price (1)
Term (2)
Options outstanding as of December 31, 2020 (2020 Plan)1,942 $8.38 9.22
Options granted546 $18.60 
Options exercised(102)$8.20 
Options forfeited(345)$8.67 
Options outstanding as of September 30, 2021 (2020 Plan)2,041 $11.08 8.85
(1)Represents the weighted average exercise price
(2)Represents weighted average remaining contractual term
0.49 million shares of 2020 NSO grants were vested and outstanding as of September 30, 2021. The aggregated fair value of 0.55 million NSOs granted during the nine months ended September 30, 2021 was $4.0 million or $7.35 per share. The intrinsic value of the 2.0 million total outstanding shares of 2020 Plan Options as of September 30, 2021, was $37.0 million. The total unrecognized compensation expenses related to 2020 Stock Plan options as of September 30, 2021 was $6.9 million to be expensed on a straight-line basis over the remaining 2.97 years.
Restricted Stock Units
The RSUs granted to employees generally are subject to the following time-based vesting conditions: one-fourth vest on the first anniversary of the grant; and thereafter one-sixteenth of the RSUs will vest each subsequent three-month anniversary. RSUs granted do not participate in earnings, dividends, and do not have voting rights until vested. RSUs granted to the Board in lieu of the quarterly payments vest immediately.
For the quarter ended September 30, 2021, approximately 0.08 million shares were issued upon vesting of the RSUs to the executives and 0.08 million shares were withheld to cover $2.1 million of employees’ tax obligations. The following table summarizes RSU activity for the nine months ended September 30, 2021(in thousands):
Shares
RSUs outstanding as of December 31, 2020 (2020 Plan)2,996 
RSUs granted47 
RSUs released(1,068)
RSU forfeited(291)
RSUs outstanding as of September 30, 20211,683 
The total unrecognized compensation expenses related to 2020 Stock Plan RSUs as of September 30, 2021 was $13.6 million to be expensed on a straight-line basis over 1.9 years.
Performance Stock Units
On March 2, 2021, the Company granted 0.5 million Performance Stock target shares under the 2020 Stock Plan with the maximum payout capped at 300%. The performance goals for these grants consist of:
1)Year-over-year growth in non-retail revenue for the Performance Period, which is Fiscal Year 2021, expressed as a percentage increase over the fiscal year 2020 non-retail revenue (“Revenue Growth”), and
2)Contribution Margin for the Performance Period as a percentage of Non-Retail revenue for the Performance Period.
Fifty percent (50%) of the target number of performance shares granted will vest (if at all) based on the extent of achievement of Revenue Growth for the Performance Period and the remaining fifty percent (50%) of the target number of performance shares granted will vest (if at all) based on the extent of achievement of the Contribution Margin.
Additionally, 0.02 million shares of PSU were granted on June 16th, 2021, per a consulting agreement with a former executive with the performance goals being consistent with those described above.
19

Performance shares will be certified and vested no later than March 1, 2022 with the payout shortly after. As of September 30, 2021, the Company assessed the vesting of the Performance Share Units as probable and the payout is estimated at 272% of the target goal. Stock-based compensation expense related to Performance Stock Units granted in 2021 was $13.1 million for the nine months ended September 30, 2021. The unrecognized expense for PSUs as of September 30, 2021, was $9.7 million.
Stock-Based Compensation Expense
The Company classifies awards issued under the stock-based compensation plans as equity. Total compensation expense for the three months ended September 30, 2021 and 2020 was $9.1 million and $5.1 million respectively. Employee stock-based compensation recognized was as follows (in thousands):
Three months ended September 30, 2021
Nine months ended
September 30,
2021202020212020
Cost of revenue$173 $66 $433 $740 
Engineering, research, and development799 621 1,970 1,678 
Sales and marketing963 808 2,207 2,545 
General and administrative7,178 3,631 16,849 8,621 
Total stock-based compensation$9,113 $5,126 $21,459 $13,584 
As of September 30, 2021, there was approximately $30.3 million of unrecognized stock-based compensation expense.
Note 11 — Earnings per share
The Company computed earnings per share (“EPS”) in conformity with the two-class method required for participating securities. Undistributed earnings allocated to participating securities are subtracted from net income in determining net income attributable to common stockholders. The Company allocated income between its common and preferred shareholders only for the periods the preferred stock was outstanding, which was January 1, 2020 to March 4, 2020. There was no preferred stock outstanding from March 5, 2020 to September 30, 2021. As the Company was in a net loss position for the periods between January 1, 2020 to March 4, 2020 and March 5, 2020 to September 30, 2021, the net loss was allocated entirely to common shareholders.
All participating securities are excluded from basic weighted-average number of common shares outstanding. Diluted EPS is computed by dividing net income available to common shareholders by the weighted-average number of shares of common stock outstanding during the period increased to include the number of additional shares of common stock that would have been outstanding if the potentially dilutive securities had been issued. Potentially dilutive securities include outstanding stock options, restricted stock units, performance stock units, warrants, and convertible preferred securities. The dilutive effect of potentially dilutive securities is reflected in diluted EPS in order of dilution and by application of the treasury stock method and the if-converted method for stock-based compensation and convertible preferred securities, respectively.
20

The following table sets forth the computation of basic and diluted EPS of common stock as follows (in thousands except per share data):
Three months ended
September 30,
Nine months ended
September 30,
2021202020212020
Numerator for basic and diluted loss per share
Net loss$(549)$(1,117)$(4,094)$(7,879)
Denominator for basic and diluted loss per share
Weighted-average shares outstanding – basic and diluted62,61049,65156,28043,074
Net income/(loss) per share
Basic$(0.01)$(0.02)$(0.07)$(0.18)
Diluted$(0.01)$(0.02)$(0.07)$(0.18)
The following table represents the number of share equivalents outstanding during the period that were excluded from the calculation of diluted net loss per share attributable to common stockholders because including them would have had an anti-dilutive effect.
Three months ended
September 30,
Nine months ended
September 30,
Potential common shares (in ‘000s)2021202020212020
Convertible preferred stock   1,048 
Stock options to purchase common stock6,486 6,467 7,088 8,676 
Restricted stock units1,840 2,963 3,042 2,993 
Performance stock units1,452 1,292 1,452 1,292 
Warrants to purchase common stock4,208 11,347 11,347 11,347 
Total13,986 22,069 22,929 25,356 

Note 12 — Commitments and contingencies
Legal Matters
The Company is subject to legal proceedings and claims that arise in the ordinary course of its business. Management evaluates each claim and provides for potential loss when the claim is probable to be paid and reasonably estimable. While adverse decisions in certain of these litigation matters, claims and administrative proceedings could have a material effect on a particular period’s results of operations, subject to the uncertainties inherent in estimating future costs for contingent liabilities, management believes that any future accruals with respect to these currently known contingencies would not have a material effect on the financial condition, liquidity or cash flows of the Company. There were no amounts required to be reflected in these consolidated financial statements related to contingencies.
Note 13 — Subsequent events
The Company performed its subsequent event procedures through November 4, 2021, the date these condensed consolidated financial statements were issued. In October 2021 the Company finalized its Business Combination post-Close share adjustment. As a result of this additional 0.1 million shares were issued and 0.9 million shares were released from escrow. Please refer to Note 3 for details.
21

Item 2. Management’s Discussion and Analysis of Financial Condition and Results of Operations
Forward-Looking Statements
The following discussion of the financial condition and results of operations of Grid Dynamics Holdings, Inc. should be read in conjunction with the unaudited condensed consolidated financial statements and the related notes thereto included elsewhere in this Quarterly Report on Form 10-Q and the audited financial statements and notes thereto and Management’s Discussion and Analysis of Financial Condition and Results of Operations for the fiscal year ended December 31, 2020, which has been filed with the Securities and Exchange Commission (“SEC”) on March 5, 2021.
The statements contained in this Quarterly Report on Form 10-Q that are not historical facts are forward-looking statements (within the meaning of Section 21E of the Securities Exchange Act of 1934, as amended, or the Exchange Act) that involve risks and uncertainties. Such forward-looking statements may be identified by, among other things, the use of forward-looking terminology such as “believes,” “expects,” “may,” “will,” “should,” “seek,” “intends,” “plans,” “estimates,” “projects,” “anticipates,” or the negative thereof or other variations thereon or comparable terminology, or by discussions of strategy that involve risks and uncertainties. Actual results may differ significantly from those projected in the forward-looking statements. Factors that might cause future results to differ materially from those projected in the forward-looking statements include, but are not limited to, those discussed in the sections titled “Risk Factors” and “Cautionary Note Regarding Forward Looking Statements,” included elsewhere in this Quarterly Report on Form 10-Q.
Overview
Grid Dynamics Holdings, Inc. (“Grid Dynamics,” “GDH,” the “Company,” “we,” “us,” or “our”) is an emerging leader in enterprise-level digital transformations in Fortune 1000 companies. For enterprises that create innovative digital products and experiences, Grid Dynamics offers close collaboration to provide digital transformation initiatives that span strategy consulting, development of early prototypes and enterprise-scale delivery of new digital platforms. Since its inception in 2006 in Menlo Park, California, as a grid and cloud consultancy firm, Grid Dynamics has been on the forefront of digital transformation, working on big ideas like cloud computing, NOSQL, DevOps, microservices, big data and AI, and quickly established itself as a provider of choice for technology and digital enterprise companies.
As a leading global digital engineering and IT services provider with its headquarters in Silicon Valley and engineering centers in the United States, Mexico and multiple European countries, Grid Dynamics’ core business is to deliver focused and complex technical consulting, software design, development, testing and internet service operations. Grid Dynamics also helps organizations become more agile and create innovative digital products and experiences through its deep expertise in emerging technology, such as AI, data science, cloud computing, big data and DevOps, lean software development practices and a high-performance product culture. Grid Dynamics believes that the key to its success is a business culture that puts products over projects, client success over contract terms and real business results over pure technical innovation. By leveraging Grid Dynamics’ proprietary processes optimized for innovation, emphasis on talent development and technical expertise, Grid Dynamics has been able to achieve significant growth.
We are a former blank check company that completed our initial public offering on October 4, 2018. In March 2020, Grid Dynamics, formerly known as ChaSerg Technology Acquisition Corp (“ChaSerg”), completed its acquisition of Grid Dynamics International, Inc. (“GDI”) pursuant to the business combination agreement dated November 13, 2019 (the “Business Combination”). In conjunction with the completion of the Business Combination, ChaSerg was renamed as Grid Dynamics Holdings, Inc.
The Business Combination was accounted for as a reverse recapitalization for which GDI was determined to be the accounting acquirer. Outstanding shares of GDI were converted into our common shares, presented as a recapitalization, and the net assets of ChaSerg were acquired at historical cost, with no goodwill or other intangible assets recorded.
22

The following table sets forth a summary of Grid Dynamics’ financial results for the periods indicated:
Three months ended
September 30,
(dollars in thousands, except per share data)20212020
% of revenue% of revenue
Revenues$57,933 100.0 %$26,332 100.0 %
Gross profit25,266 43.6 %11,154 42.4 %
Income/(loss) from operations1,970 3.4 %(1,671)(6.3)%
Net loss(549)(0.9)%(1,117)(4.2)%
Comprehensive loss(635)(1.1)%(1,117)(4.2)%
Diluted loss per share$(0.01)n/a$(0.02)n/a
Non-GAAP Financial Information(1)
Non-GAAP EBITDA(1)
12,503 21.6 %4,173 15.8 %
Non-GAAP Net Income(1)
7,869 13.6 %2,492 9.5 %
Non-GAAP Diluted EPS(1)
$0.11 n/a$0.05 n/a
(1)Non-GAAP EBITDA, Non-GAAP Net Income and Non-GAAP Diluted EPS are non-GAAP financial measures. See “Non-GAAP Measures” below for additional information and reconciliations to the most directly comparable GAAP financial measures.
Nine months ended
September 30,
(dollars in thousands, except per share data)20212020
% of revenue% of revenue
Revenues$144,743 100.0 %$81,157 100.0 %
Gross profit60,400 41.7 %29,358 36.2 %
Income/(loss) from operations1,576 1.1 %(11,892)(14.7)%
Net loss(4,094)(2.8)%(7,879)(9.7)%
Comprehensive loss(4,166)(2.9)%(7,879)(9.7)%
Diluted loss per share$(0.07)n/a$(0.18)n/a
Non-GAAP Financial Information(1)
Non-GAAP EBITDA(1)
27,497 19.0 %8,416 10.4 %
Non-GAAP Net Income(1)
17,024 11.8 %4,803 5.9 %
Non-GAAP Diluted EPS(1)
$0.26 n/a$0.10 n/a
Recent Developments
In the three months ended September 30, 2021, our revenues of $57.9 million were up 10.3 million or 21.5% in comparison to the three months ended June 30, 2021, and up 120.0% from the three months ended September 30, 2020. Our three months ended September 30, 2021 revenues included $13.8 million in revenue contribution from the acquisitions of Daxx and Tacit. Excluding contribution from acquisitions, in the three months ended September 30, 2021, our revenues of $44.1 million were up $5.7 million or 14.8% in comparison to the three months ended June 30, 2021, and up $17.8 million or 67.3% from the three months ended September 30, 2020 and was the highest revenue quarter in the company’s history. Similar to the last three quarters, in the three months ended September 30, 2021, we witnessed healthy business trends. This is largely reflected in the double-digit sequential growth over the three months ended June 30, 2021. The three months ended September 30, 2021 also marked the fifth consecutive sequential growth quarter since witnessing a bottom in revenues in the three months ended September 30, 2020. During the quarter, we witnessed strong demand from our customers across our industry verticals as digital transformation initiatives take center stage.
During the three months ended September 30, 2021, our largest industry vertical was Retail. At 31.5% of revenue, our Retail vertical was up 43.5% in comparison to the three months ended June 30, 2021, and up 198.2% from the three months ended September 30, 2020. The strong sequential and year-over-year growth was driven by a combination of factors that included
23

ramping of business by Retail customers as they invest in digital transformation initiatives combined with several of our customers enhancing their engagements as they witness improving business trends. Our Technology Media, and Telecom (“TMT”) vertical comprised 30.4% of our revenue, while Consumer Packaged Goods (“CPG”)/Manufacturing, Finance, and Other verticals contributed to 19.3%, 9.0%, and 9.8% respectively. Revenues from our Top 5 customers during the quarter was 42.0%, down from 59.9% in the same quarter year ago. The diversification in our Top 5 customer concentration was driven by a combination of factors that included success in ramping business at new customers and growing business at existing customers, aided by our recent acquisitions.
We continue to focus on revenue diversification by increasing our customer base with new customers’ additions. During the three months ended September 30, 2021, we received revenues from a total of 215 customers, up from 212 customers in the three months ended June 30, 2021 and 42 customers in the three months ended September 30, 2020. Of these, 160 customers came from our recent acquisitions of Tacit and Daxx. Excluding customers from our recent acquisitions, we exited the quarter with 55 paying customers that included 7 new customers added during the three months ended September 30, 2021.
We exited the three months ended September 30, 2021 with $(0.5) million, or (0.9)% in GAAP Net Loss, an improvement from a GAAP Net Loss of $(1.5) million, or (3.1)% in the three months ended June 30, 2021 and a GAAP Net Loss of $(1.1) million, or (4.2)% in the three months ended September 30, 2020. We exited the three months ended September 30, 2021 with $12.5 million, or 21.6% in Non-GAAP EBITDA, up from $9.7 million, or 20.4% in the three months ended June 30, 2021 and $4.2 million, or 15.8% in the three months ended September 30, 2020. The sequential increase in profitability was largely driven by increase in billable personnel and billable work hours combined by contributions from our recent acquisitions of Tacit and Daxx.
Acquisition of Tacit Knowledge Inc.
On May 29, 2021, we acquired UK based Tacit Knowledge Inc. (“Tacit”) in an all-cash transaction. Headquartered in UK, Tacit is a global consultancy focused on digital commerce serving customers in the UK, North America, Continental Europe, and Asia. The company serves leading global brands across technology, CPG, financial, and retail markets. The company has approximately 180 employees with engineering centers situated in Moldova and Mexico. The acquisition will augment our service offerings and will strengthen our competitive position within the market. Additionally, the acquisition will also enable us to leverage near-shore capabilities with the company’s presence in Mexico.
Acquisition of Daxx
On December 14, 2020, we acquired Netherland based Daxx in an all-cash transaction. Headquartered in Amsterdam, and with approximately 490 employees, the company has engineering centers situated in major tech hubs across Ukraine. The company has over 20 years of experience in delivering software services to clients across a wide range of industry verticals that include high-tech, digital media, healthcare, and education. Some of the key capabilities include consulting services spanning agile process reengineering, lean development, and DevOps. Daxx serves customers in the Netherlands, Germany, U.K., and U.S., and with strong relationships with high-growth start-ups and established software companies. We believe the acquisition of Daxx will enable our company to have a stronger foothold in Europe and will enable the company to continue diversifying its business.
COVID-19 Related Updates
In December 2019, a novel coronavirus COVID-19 was reported in China, and in March 2020, the World Health Organization declared it a pandemic. This contagious disease pandemic has continued to spread across the globe, including extensively within the U.S., and is impacting worldwide economic activity and financial markets, significantly increasing economic volatility and uncertainty. In response to this global pandemic, several local, state, and federal governments have been prompted to take unprecedented steps that include, but not limited to, travel restrictions, closure of businesses, social distancing, and quarantines.
Starting in March 2020, headwinds to our business from the pandemic were largely centered around our retail customers as many of them witnessed a slowdown in their sales. After witnessing a low point in the month of May 2020, our business has steadily improved as we have added new customers and have grown existing business across industry verticals. We are now facing challenges from COVID-19 such as employee retention and shortage of talent on the job market. We continue to take precautionary measures intended to minimize the risk of the virus to our employees, our customers, and the communities in which we operate that include suspension of all non-essential travel. Although a significant proportion of our employees continue to work remotely, all our facilities have been opened for employees to work following local government guidelines. We continue to deliver services to our clients in this fashion and this has resulted in minimal disruption in our operational and delivery capabilities.
24

Business Combination
On March 5, 2020, a wholly-owned subsidiary (“Merger Sub 1”) of ChaSerg merged with and into GDI, with GDI surviving the merger (the “Initial Merger”). Immediately following the Initial Merger, GDI merged with and into another wholly-owned subsidiary of ChaSerg (“Merger Sub 2”) with Merger Sub 2 surviving; Merger Sub 2 was then renamed “Grid Dynamics International, LLC,” and ChaSerg was then renamed “Grid Dynamics Holdings, Inc.” (the “Business Combination”). As of the open of trading on March 6, 2020, the common stock and warrants of Grid Dynamics Holdings, Inc. (“Grid Dynamics”), formerly those of ChaSerg, began trading on The NASDAQ Stock Market LLC as “GDYN” and “GDYNW,” respectively.
Comparability of Financial Information
Grid Dynamics’ results of operations and statements of assets and liabilities may not be comparable between periods as a result of the Business Combination on March 5, 2020 and the other events and transactions discussed below.
Key Performance Indicators and Other Factors Affecting Performance
Grid Dynamics uses the following key performance indicators and assesses the following other factors to analyze its business performance, to make budgets and financial forecasts and to develop strategic plans:
Employees by Region
Attracting and retaining the right employees is critical to the success of Grid Dynamics’ business and is a key factor in Grid Dynamics’ ability to meet client needs and grow its revenue base. Grid Dynamics’ revenue prospects and long-term success depend significantly on its ability to recruit and retain qualified IT professionals. A substantial majority of Grid Dynamics’ personnel is comprised of such IT professionals.
The following table shows the number of Grid Dynamics personnel (including full-time employees and contractors serving in similar capacities) by region, as of the dates indicated:
As of September 30,
20212020
United States and Mexico349 249 
Central and Eastern Europe(1), U.K. and the Netherlands
2,535 955 
Total2,884 1,204 
(1)Includes Ukraine, Russia, Poland, Serbia, and Moldova.
Attrition
There is competition for IT professionals in the regions in which Grid Dynamics operates, and any increase in such competition may adversely impact Grid Dynamics’ business and gross profit margins. Employee retention is one of Grid Dynamics’ main priorities and is a key driver of operational efficiency. Grid Dynamics seeks to retain top talent by providing the opportunity to work on exciting, cutting-edge projects for high profile clients, a flexible work environment and training and development programs. Grid Dynamics’ management targets a voluntary attrition rate no higher than the mid-teen percentages, in line with the industry.
Hours and Utilization
As most of Grid Dynamics’ customer projects are performed and invoiced on a time and materials basis, Grid Dynamics’ management tracks and projects billable hours as an indicator of business volume and corresponding resource needs for IT professionals. To maintain its gross profit margins, Grid Dynamics must effectively utilize its IT professionals, which depends on its ability to integrate and train new personnel, to efficiently transition personnel from completed projects to new assignments, to forecast customer demand for services and to deploy personnel with appropriate skills and seniority to projects. Grid Dynamics’ management generally tracks utilization with respect to subsets of employees, by location or by project, and calculates the utilization rate for each subset by dividing (x) the aggregate number of billable hours for a period by (y) the aggregate number of total available hours for the same period. Grid Dynamics’ management analyzes and projects utilization to measure the efficiency of its workforce and to inform management’s budget and personnel recruiting decisions. 
25

Customer Concentration
Grid Dynamics’ ability to retain and expand its relationships with existing customers and add new customers are key indicators of its revenue potential. Grid Dynamics grew its customer base from 47 customers during nine months of 2020 to 251 customers in the same period of 2021, including 190 customers that were acquired as part of Daxx and Tacit acquisitions. Grid Dynamics’ procurement of new customers has a direct impact on its ability to diversify its sources of revenue and replace customers that may no longer require its services. Grid Dynamics has a relatively high level of revenue concentration with certain customers.
The following table shows the evolution of Grid Dynamics’ customer base and revenue concentration, as of the dates and for the periods indicated:
Three Months Ended
September 30,
20212020
Total customers (for the period) (1)
215 42 
Of which (customer revenue amounts annualized for interim periods):
>$5.0 million
>$2.5 – 5.0 million
>$1.0 – 2.5 million19 
Top five customers42.0 %59.9 %
Top ten customers58.2 %77.7 %
Top five customers$24,333 $15,782 
Top ten customers$33,728 $20,463 
(1)Number of customers acquired as a result of Daxx and Tacit acquisitions for the three months ended September 30, 2021 is 160.
Nine Months Ended
September 30,
20212020
Total customers (for the period) (1)
251 47 
Of which (customer revenue amounts annualized for interim periods):
>$5.0 million
>$2.5 – 5.0 million
>$1.0 – 2.5 million19 
Top five customers44.8 %58.8 %
Top ten customers61.7 %81.2 %
Top five customers$64,817 $47,724 
Top ten customers$89,373 $65,925 
(1)Number of customers acquired as a result of Daxx and Tacit acquisitions for the nine months ended September 30, 2021 is 190.
Foreign Currency Exchange Rate Exposure
Grid Dynamics is exposed to foreign currency exchange rate risk and its profit margins are subject to volatility between periods due to changes in foreign currency exchange rates relative to the U.S. dollar. Grid Dynamics’ functional currency apart from the U.S. dollar includes EURO, British pounds, Mexican pesos and Moldovan leu. Grid Dynamics contracts with customers for payment in and generates predominantly all of its revenue in U.S. dollars, except for Daxx and Tacit that generate revenue predominantly in EURO and British pounds. Its non-U.S. subsidiaries’ operations relate substantially to performing services under those contracts. Several of Grid Dynamics’ subsidiaries conduct operations and employ or contract personnel in Russia, Ukraine, Poland and Serbia, but keep their books and records in U.S. dollars. Daxx’s books are kept in EURO. Tacit’s books
26

are kept in local currencies. Grid Dynamics’ foreign currency transaction exposure is a result of having to convert U.S. dollars into the local currencies of the countries in which it must pay expenses, typically by transferring funds to its non-U.S. subsidiaries. These expenses are primarily comprised of compensation and benefits and other operating costs, such as rent. Subsidiary transactions executed in local currencies are converted into U.S. dollars at the exchange rate in effect on the date of the transaction, in the case of asset and liability transactions, or at the average monthly exchange rate, in the case of income and expense transactions. Certain balances in local currencies, particularly cash and financial instruments, are adjusted at each balance sheet date to reflect the then-current exchange rate, which is the rate at which the related receivable or payable could be settled at that date. As a result, Grid Dynamics’ assets, liabilities, profit margins and other measures of profitability may be subject to volatility due to changes in the exchange rate of the U.S. dollar against the currencies in which Grid Dynamics’ subsidiaries incur operating expenses, hold assets, or owe liabilities, and may not be comparable between periods.
In the three and nine months ended September 30, 2021, approximately 23.5%, 12.0% and 5.8% of Grid Dynamics’ $56.0 million and approximately 24.6%, 11.6% and 6.9% of Grid Dynamics’ $143.2 million of combined cost of revenue and total operating expenses were denominated in the Ukrainian hryvnia, Russian ruble, and Polish zloty, respectively. Comparatively, the same foreign currencies accounted for approximately 10.6%, 11.8% and 9.8% of Grid Dynamics’ $28.0 million and 10.7%, 14.5%, and 10.0% of Grid Dynamics’ $93.0 million of combined cost of revenue and total operating expenses in the three and nine months ended September 30, 2020. Grid Dynamics does not currently hedge its foreign currency exposure, although it seeks to minimize such exposure by limiting cash transfers to amounts necessary to fund subsidiary operating expenses for a short period, typically one to two weeks. When and where possible, Grid Dynamics seeks to match expenses to the U.S. dollar. For example, in Ukraine, Grid Dynamics generally pays salaries in the current hryvnia equivalent of an agreed U.S. dollar amount, consistent with local requirements. As a result, a significant portion of Grid Dynamics’ exposure to fluctuations in the value of the Ukrainian hryvnia against the U.S. dollar is naturally hedged. Management carefully evaluates its exposure to foreign currency risk and, though Grid Dynamics does not currently hedge this exposure using financial instruments, it may do so in the future. See Item 7A, “Quantitative and Qualitative Disclosures about Market Risk—Foreign Currency Exchange Rate Risk” below for more information about Grid Dynamics’ exposure to foreign currency exchange rates.
Seasonality
Grid Dynamics’ business is subject to seasonal trends that impact its revenues and profitability between quarters. Some of the factors that influence the seasonal trends include the timing of holidays in the countries in which Grid Dynamics operates and the U.S. retail cycle, which drives the behavior of Grid Dynamics’ retail customers. Excluding the impact of growth in its book of business, Grid Dynamics has historically recorded higher revenue and gross profit in the second and third quarters of each year compared to the first and fourth quarters of each year. The Christmas holiday season in Russia and Ukraine, for example, falls in the first quarter of the calendar year, resulting in reduced activity and billable hours. In addition, many of Grid Dynamics’ retail sector customers tend to slow their discretionary spending during the holiday sale season, which typically lasts from late November (before Thanksgiving) through late December (after Christmas).
Non-GAAP Measures
To supplement Grid Dynamics’ consolidated financial data presented on a basis consistent with U.S. GAAP, this Quarterly Report contains certain non-GAAP financial measures, including Non-GAAP EBITDA, Non-GAAP Net Income and Non-GAAP Diluted Earnings Per Share, or EPS. Grid Dynamics has included these non-GAAP financial measures because they are financial measures used by Grid Dynamics’ management to evaluate Grid Dynamics’ core operating performance and trends, to make strategic decisions regarding the allocation of capital and new investments and are among the factors analyzed in making performance-based compensation decisions for key personnel. These measures exclude certain expenses that are required under U.S. GAAP. Grid Dynamics excludes these items because they are not part of core operations or, in the case of stock-based compensation, non-cash expenses that are determined based in part on Grid Dynamics’ underlying performance.
Grid Dynamics believes these supplemental performance measurements are useful in evaluating operating performance, as they are similar to measures reported by its public industry peers and those regularly used by security analysts, investors and other interested parties in analyzing operating performance and prospects. These non-GAAP financial measures are not intended to be a substitute for any GAAP financial measures and, as calculated, may not be comparable to other similarly titled measures of performance of other companies in other industries or within the same industry.
There are significant limitations associated with the use of non-GAAP financial measures. Further, these measures may differ from the non-GAAP information, even where similarly titled, used by other companies and therefore should not be used to compare our performance to that of other companies. Grid Dynamics compensates for these limitations by providing investors and other users of its financial information a reconciliation of non-GAAP measures to the related GAAP financial measures.
27

Grid Dynamics encourages investors and others to review its financial information in its entirety, not to rely on any single financial measure and to view its non-GAAP measures in conjunction with GAAP financial measures.
Grid Dynamics defines and calculates its non-GAAP financial measures as follows:
Non-GAAP EBITDA: Net income/(loss) before interest income/expense, provision for income taxes and depreciation and amortization, and further adjusted for the impact of stock-based compensation expense, transaction-related costs (which include, when applicable, professional fees, retention bonuses, and consulting, legal and advisory costs related to Grid Dynamics’ merger and acquisition and capital-raising activities), impairment of goodwill and other income/expenses, net (which includes mainly interest income and expense, foreign currency transaction losses and gains, fair value adjustments and other miscellaneous expenses), and restructuring costs.
Non-GAAP Net Income: Net income/(loss) adjusted for the impact of stock-based compensation, impairment of goodwill, transaction-related costs, restructuring costs, other income/expenses, net, and the tax impacts of these adjustments.
Non-GAAP Diluted EPS: Non-GAAP Net income, divided by the diluted weighted-average number of common shares outstanding for the period.
The following table presents the reconciliation of Grid Dynamics’ Non-GAAP EBITDA to its consolidated net loss, the most directly comparable GAAP measure, for the periods indicated:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2021202020212020
GAAP net loss$(549)$(1,117)$(4,094)$(7,879)
Adjusted for:
Depreciation and amortization1,420 662 3,520 1,896 
Provision/(benefit) for income taxes2,633 (99)4,655 (3,594)
Stock-based compensation9,113 5,126 21,459 13,584 
Transaction and transformation-related costs (1)
— — 942 3,940 
Restructuring costs (2)
— 56 — 888 
Other (income)/expenses, net (3)
(114)(455)1,015 (419)
Non-GAAP EBITDA$12,503 $4,173 $27,497 $8,416 
(1)Transaction and transformation-related costs include, when applicable, external deal costs, transaction-related professional fees, transaction-related retention bonuses, which are allocated proportionally across cost of revenue, engineering, research and development, sales and marketing and general and administrative expenses as well as other transaction-related costs including integration expenses consisting of outside professional and consulting services.
(2)We implemented a cost reduction plan during first quarter of 2020. During the three and nine months ended September 30, 2020, we incurred restructuring and severance charges of $0.1 million and $0.9 million, respectively, primarily resulting from a reduction in workforce and other charges. We did not incur any restructuring expenses during the three and nine months ended September 30, 2021.
(3)Other expenses consist primarily of losses and gains on foreign currency transactions, fair value adjustments, and other miscellaneous non-operating expenses and other income consists primarily of interest on cash held at banks.
28

The following table presents a reconciliation of Grid Dynamics’ Non-GAAP Diluted EPS and its Non-GAAP Net Income to its consolidated net loss for the periods indicated:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except per share data)2021202020212020
GAAP net loss$(549)$(1,117)$(4,094)$(7,879)
Adjusted for:
Stock-based compensation9,113 5,126 21,459 13,584 
Transaction and transformation-related costs (1)
— — 942 3,940 
Restructuring costs (2)
— 56 — 888 
Other (income)/expenses, net (3)
(114)(455)1,015 (419)
Tax impact of non-GAAP adjustments (4)
(581)(1,118)(2,298)(5,311)
Non-GAAP Net Income $7,869 $2,492 $17,024 $4,803 
Non-GAAP Diluted EPS(5)
$0.11 $0.05 $0.26 $0.10 
Number of shares used in the Non-GAAP Diluted EPS69,494 52,317 64,361 46,734 
(1)Transaction and transformation-related costs include, when applicable, external deal costs, transaction-related professional fees, transaction-related retention bonuses, which are allocated proportionally across cost of revenue, engineering, research and development, sales and marketing and general and administrative expenses as well as other transaction-related costs including integration expenses consisting of outside professional and consulting services.
(2)We implemented a cost reduction plan during first quarter of 2020. During the three and nine months ended September 30, 2020, we incurred restructuring and severance charges of $0.1 million and $0.9 million, respectively, primarily resulting from a reduction in workforce and other charges. We did not incur any restructuring expenses during the three and nine months ended September 30, 2021.
(3)Other expenses consist primarily of losses and gains on foreign currency transactions, fair value adjustments, and other miscellaneous non-operating expenses and other income consists primarily of interest on cash held at banks.
(4)Reflects the estimated tax impact of the non-GAAP adjustments presented in the table.
(5)Non-GAAP Diluted EPS is calculated by dividing Non-GAAP Net Income/(Loss) by the diluted weighted-average shares outstanding. From the three months ended December 31, 2020 onwards, we have chosen to calculate its Non-GAAP Diluted EPS based on the diluted share count even in net GAAP loss situation. This methodology differs from the prior approach when we applied the basic share count in situations of a net GAAP loss and a positive non-GAAP net income. Management believes that the new methodology provides better representation of the company’s financial results as it takes into account the significance of the dilutive impact from any outstanding equity instruments in a GAAP net loss/non-GAAP Net income situation.
Key Components of Revenue and Expenses
Revenue
Grid Dynamics generates revenue by providing focused and complex services in the area of software engineering, development, integration, testing, and operations of digital services. Grid Dynamics provides services mainly on a time and materials basis and, to a much lesser extent, on a fixed-fee basis. While fixed-fee contracts currently represent an immaterial portion of overall revenue for the periods presented, Grid Dynamics expects proportionate revenue from fixed-fee contracts to increase in future periods. On a time and materials basis, Grid Dynamics earns and recognizes revenue as hours and costs are incurred. On its current and future fixed fee contracts, Grid Dynamics earns and recognizes revenue as the work is performed, the monthly calculation of which is based upon actual labor hours incurred and level of effort expended throughout the duration of the contract. For both time and materials contracts and fixed fee contracts, hourly rates are typically determined based on the location and experience of Grid Dynamics personnel selected to perform the service and are negotiated for each contract or statement of work, as the case may be. For fixed fee contracts, the fixed fee generally remains constant for the contracted project period unless the customer directs a change in scope of project work or requests additional Grid Dynamics employees in excess of those scheduled for a specific project.
In select cases, Grid Dynamics offers volume discounts or early settlement discounts, which are recorded as contra-revenue items. Volume discounts apply once the customer reaches certain contractual spend thresholds. Early settlement discounts are issued contingent upon the timing of the payment from the customer. If there is uncertainty about project completion or receipt of payment for services provided, revenue is deferred until the uncertainty is sufficiently resolved.
29

Costs and Expenses
Cost of Revenue. Cost of revenue consists primarily of salaries and employee benefits, including performance bonuses and stock-based compensation, and travel expenses for client-serving personnel. Cost of revenue also includes depreciation and amortization expense related to client-serving activities.
Engineering, Research and Development. Engineering, research and development expenses consist mainly of salaries and employee benefits including performance bonuses and stock-based compensation for personnel engaged in the design and development of solutions. Engineering, research and development expenses also include depreciation and amortization expenses related to such activities. Engineering, research and development costs are expensed as incurred.
Sales and Marketing. Sales and marketing expenses consist primarily of expenses associated with promoting and selling Grid Dynamics’ services and consists mainly of salaries and employee benefits, including performance bonuses and stock-based compensation, marketing events, travel, as well as depreciation and amortization expenses related to such activities.
General and Administrative. General and administrative expenses consist primarily of administrative personnel and officers’ salaries and employee benefits including performance bonuses and stock-based compensation, legal and audit expenses, insurance, operating lease expenses (mainly facilities and vehicles) and other facility costs, workforce global mobility initiatives, restructuring and employee relocations cost (not in connection with customer projects), and depreciation and amortization expenses related to such activities. General and administrative expenses include a substantial majority of Grid Dynamics’ stock-based compensation costs for the financial periods discussed herein.
Provision for Income Taxes. Grid Dynamics follows the asset and liability method of accounting for income taxes, whereby deferred income taxes are recognized for the tax consequences of temporary differences between the financial statement carrying amounts and the tax basis of the assets and liabilities. The provision for income taxes reflects income earned and taxed in the various U.S. federal and state and non-U.S. jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals, or adjustments of accruals for tax contingencies or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective tax rate.
Results of Operations
The three and nine months ended September 30, 2021compared to the three and nine months ended September 30, 2020
The following table sets forth a summary of Grid Dynamics’ consolidated results of operations for the interim periods indicated, and the changes between periods:
Three Months Ended
September 30,
(unaudited, in thousands, except percentages)20212020Change
Revenue$57,933 $26,332 $31,601 120.0 %
Cost of revenue32,667 15,178 17,489 115.2 %
Gross profit25,266 11,154 14,112 126.5 %
Engineering, research, and development2,132 2,076 56 2.7 %
Sales and marketing4,073 2,245 1,828 81.4 %
General and administrative17,091 8,504 8,587 101.0 %
Total operating expense23,296 12,825 10,471 81.6 %
Profit/(loss) from operations1,970 (1,671)3,641 (217.9)%
Other income/(expenses), net114 455 (341)(74.9)%
Profit/(loss) before income taxes2,084 (1,216)3,300 (271.4)%
Provision/(benefit) for income taxes2,633 (99)2,732 (2,759.6)%
Net loss(549)(1,117)568 (50.9)%
Foreign currency translation adjustments, net of tax(86)— (86)n.m.
Comprehensive loss$(635)$(1,117)$482 (43.2)%
n.m. = not meaningful.
30

Nine Months Ended
September 30,
(unaudited, in thousands, except percentages)20212020Change
Revenue$144,743 $81,157 $63,586 78.3 %
Cost of revenue84,343 51,799 32,544 62.8 %
Gross profit60,400 29,358 31,042 105.7 %
Engineering, research, and development5,687 7,193 (1,506)(20.9)%
Sales and marketing9,942 7,451 2,491 33.4 %
General and administrative43,195 26,606 16,589 62.4 %
Total operating expense58,824 41,250 17,574 42.6 %
Income/(loss) from operations1,576 (11,892)13,468 (113.3)%
Other expenses, net(1,015)419 (1,434)(342.2)%
Income/(loss) before income taxes561 (11,473)12,034 (104.9)%
Provision/(benefit) for income taxes4,655 (3,594)8,249 (229.5)%
Net loss(4,094)(7,879)3,785 (48.0)%
Foreign currency translation adjustments, net of tax(72)— (72)n.m.
Comprehensive loss$(4,166)$(7,879)$3,713 (47.1)%
Revenues by Vertical. We assign our customers into one of our four main vertical markets or a group of various industries where we are increasing our presence, which we label as “Verticals”. The following table presents our revenues by vertical and revenues as a percentage of total revenues by vertical for the periods indicated:
Three Months Ended September 30,
(unaudited, in thousands, except percentages)2021% of revenue2020% of revenue
Technology, Media and Telecom$17,597 30.4 %$12,637 48.0 %
Retail18,271 31.5 %6,127 23.3 %
CPG/Manufacturing11,208 19.3 %3,357 12.7 %
Finance5,224 9.0 %3,091 11.7 %
Other5,633 9.8 %1,120 4.3 %
Total$57,933 100.0 %$26,332 100.0 %
Nine Months Ended September 30,
(unaudited, in thousands, except percentages)2021% of revenue2020% of revenue
Technology, Media and Telecom$48,123 33.2 %$34,689 42.7 %
Retail39,850 27.5 %26,226 32.3 %
CPG/Manufacturing29,832 20.6 %8,012 9.9 %
Finance12,733 8.8 %10,646 13.1 %
Other14,205 9.9 %1,584 2.0 %
Total$144,743 100.0 %$81,157 100.0 %
Revenue. Revenue increased by $31.6 million, or 120.0%, to $57.9 million in the three months ended September 30, 2021 from $26.3 million in the three months ended September 30, 2020. Revenue increased by $63.6 million, or 78.3%, to $144.7 million in the nine months ended September 30, 2021 from $81.2 million in the nine months ended September 30, 2020. The year- over- year increases, both on a three month and nine-month basis, were largely driven by the improved business conditions as the company recovered from the impact of COVID-19 that resulted in increased billable headcount and billable hours. Additionally, the acquisitions of Daxx and Tacit contributed to the year-over-year growth, both on a three month and nine-month basis. Combined, these two acquisitions contributed a total of $13.8 million and $29.7 million during the three and nine months ended September 30, 2021, respectively.

31

Cost of Revenue and Gross Profit. Cost of revenue increased by $17.5 million, or 115.2%, to $32.7 million in the three months ended September 30, 2021 from $15.2 million in the three months ended September 30, 2020 largely from increased costs of personnel to support higher revenue. Cost of revenue increased by $32.5 million, or 62.8%, to $84.3 million in the nine months ended September 30, 2021 from $51.8 million in the same period of September 30, 2020, largely from increased costs of personnel to support higher revenue offset by lower expenses, such as travel related expenses and retention bonuses.
Gross profit increased by $14.1 million, or 126.5%, to $25.3 million in the three months ended September 30, 2021 from $11.2 million in the three months ended September 30, 2020. Gross margin (gross profit as a percentage of revenue) increased by 1.2 percentage points to 43.6% in the three months ended September 30, 2021 from 42.4% in the three months ended September 30, 2020. Gross profit increased by $31.0 million, or 105.7%, to $60.4 million in the nine months ended September 30, 2021 from $29.4 million in the nine months ended September 30, 2020. Gross margin (gross profit as a percentage of revenue) increased by 5.5 percentage points to 41.7% in the nine months ended September 30, 2021 from 36.2% in the same period of 2020. The increase in gross margins, both on a three-month and nine-month basis, was largely driven by a combination of increased billable workforce utilization and greater mix shift towards offshore delivery locations. Additionally, in the three and nine months ended September 30, 2020, our business was severely impacted by COVID-19 which resulted in a significant proportion of our workforce becoming non-billable resulting in lower gross margins in comparison to the same period of 2021.
Engineering, Research and Development. Engineering, research and development expenses remained on the same level in the three months ended September 30, 2021 and 2020. During the nine months ended September 30, 2021, engineering, research and development expenses decreased by 20.9% to $5.7 million from $7.2 million during the nine months ended September 30, 2020. The decrease was primarily due to greater utilization of our personnel towards billable engagements and decrease in retention bonuses.
Sales and Marketing. Sales and marketing expenses increased by $1.8 million, or 81.4% to $4.1 million in the three months ended September 30, 2021 as compared to the three months ended September 30, 2020 and increased by 2.5 million, or 33.4% during nine months ended September 30, 2021 compared to the same period of 2020. The increase on a three month and nine month basis was mainly due to increase in sales personnel, sales initiatives, and increase in wages in 2021.
General and Administrative. General and administrative expenses increased by $8.6 million or 101.0% to $17.1 million in the three months ended September 30, 2021 and increased by $16.6 million, or 62.4%, to $43.2 million in the nine months ended September 30, 2021. The increase on a three month and nine month basis was mainly due to increase in stock-based compensation, increase in wages and bonuses, increase in legal and professional fees due to the recent acquisition of Tacit in May of 2021, additional expenses from facilities, and increase in amortization of intangibles. General and administrative expenses accounted for 29.5% and 29.8% of Grid Dynamics’ revenue in the three and nine months ended September 30, 2021 respectively, a decrease from 32.3% and 32.8% in the three month and nine months ended September 30, 2020, respectively.
Other Income/(Expenses), Net. Other expenses decreased by $0.3 million for the three months ended September 30, 2021 in comparison to the three months ended September 30, 2020. The decrease was primarily due to adjustment to the final Daxx earnout of $0.4 million. On a nine month ended September 30, 2021 basis, Other expense increased by $1.4 million compared to Other expense, net during the same period of 2020 mainly due to changes in the fair value of private warrants of $1.0 million in the nine months ended September 30, 2021.
Provision/(Benefit) for Income Tax. During the three months ended September 30, 2021 we recognized a provision for income tax of $2.6 million compared to benefit for income tax of $(0.1) million in the same period of 2020. The difference in tax provision was attributable mainly to Section 162(m) compensation deduction limitations partially offset by stock-based compensation excess tax benefit. Additionally, the United Kingdom’s (“UK”) recently enacted Finance Act 2021 has increased its corporate tax rate to 25% for companies with profits exceeding 250,000 pounds, effective beginning April 01, 2023. As a result of this change in tax law, the Company remeasured its UK deferred taxes which resulted in a $0.5 million discrete tax expense in the three months ended June 30, 2021. Provision for income tax was $4.7 million in the nine months ended September 30, 2021 compared to benefit for income tax of $(3.6) million in the nine months ended September 30, 2020.
During three and nine months ended September 30, 2021, we recognized net loss of $(0.5) million and $(4.1) million, respectively, compared to net loss of $(1.1) million and $(7.9) million in the same periods of 2020 due to the reasons stated above.

32

Liquidity and Capital Resources
Grid Dynamics measures liquidity in terms of its ability to fund the cash requirements of its business operations, including working capital needs, capital expenditures, contractual obligations, and other commitments with cash flows from operations and other sources of funding. Grid Dynamics’ current liquidity needs relate mainly to compensation and benefits of Grid Dynamics’ employees and contractors and capital expenditures for computer hardware and office furniture. Grid Dynamics’ ability to expand and grow its business will depend on many factors including its capital expenditure needs and the evolution of its operating cash flows. Grid Dynamics may need more cash resources due to changed business conditions or other developments, including investments or acquisitions. Grid Dynamics believes that its current cash position on its balance sheet of $199.3 million as of September 30, 2021 is sufficient to fund its currently expected levels of operating, investing and financing expenditures for a period of twelve months from the date of this filing. However, if Grid Dynamics’ resources are insufficient to satisfy its cash requirements, it may need to seek additional equity or debt financing, which may be subject to conditions outside of Grid Dynamics’ control and may not be available on terms acceptable to Grid Dynamics’ management or at all.
As of September 30, 2021, Grid Dynamics had cash and cash equivalents amounting to $199.3 million (compared to $112.7 million at December 31, 2020). Of this amount, $6.8 million was held outside the United States, namely in Russia, Ukraine, Poland, Serbia, the Netherlands, UK, Mexico, Moldova, and Singapore (compared to $3.1 million as of December 31, 2020). As many of Grid Dynamics’ assets, operations and employees are located in these countries, Grid Dynamics expects that all such cash and cash equivalents will be used to fund future operating needs and Grid Dynamics’ management has no intention of repatriating the funds. If Grid Dynamics decided to remit funds from these countries to the United States in the future, whether in the form of inter-company dividends or otherwise, they may be subject to foreign withholding taxes. In addition, Grid Dynamics’ cash in banks in Russia, Ukraine, Poland, Moldova, Serbia, and Mexico may be subject to other risks, as the banking sector in certain of these countries is subject to periodic instability, may be subject to sanctions and may be subject to capital adequacy and other banking standards that are substantially less rigorous than those of the United States.
On July 6, 2021, Grid Dynamics closed a follow-on public offering of common stock that resulted in $78.3 million net proceeds, after deducting underwriting discounts and commissions and estimated offering expenses payable by the Company.
Grid Dynamics does not have any debt outstanding as of September 30, 2021 and or December 31, 2020.
Our performance stock units, or PSUs, vested upon the satisfaction of a performance-based vesting condition. The compensation committee of our board of directors certified that the performance conditions of the PSUs were met, and PSUs were released on February 12, 2021. Approximately 0.7 million shares were issued upon vesting of the PSUs and 0.75 million shares were net withheld to cover $10.7 million employees’ tax withholding obligations. In the nine months ended September 30, 2021, approximately 1.1 million shares underlying RSUs held by our officers vested. Upon vesting of the RSUs, approximately 0.6 million shares were released, and 0.5 million shares were net withheld to cover the employees’ tax withholding obligations. We have determined that our policy will be to require individuals to withhold to cover taxes, so approximately 52% of the vested shares were withheld on the settlement date, with the equivalent value being paid by us from our working capital. The total net tax withholding obligations for the nine months ended September 30, 2021 were approximately $23.3 million in the aggregate for the option exercises, RSU and PSU releases. The next vesting events for our RSUs will occur during the fourth quarter of 2021, at which time approximately 0.16 million shares underlying RSUs held by our officers and employees will vest and settle into shares of our common stock. We currently expect that at the current market price of $29.0 the tax obligation will amount to $2.3 million
33

Cash Flows
The following table summarizes Grid Dynamics’ cash flows for the periods indicated:
Nine Months Ended
September 30,
(unaudited, in thousands)20212020
Net cash provided by/(used in) operating activities$14,655 $2,998 
Net cash used in investing activities$(33,601)$(1,607)
Net cash provided by financing activities$105,570 $82,946 
Effect of exchange rate changes on cash and cash equivalents$(72)$— 
Net increase in cash and cash equivalents$86,552 $84,337 
Cash, cash equivalents (beginning of period)$112,745 $42,189 
Cash, cash equivalents (end of period)$199,297 $126,526 
Operating Activities. Net cash provided by operating activities for the nine months ended September 30, 2021 increased by $11.7 million to $14.7 million from $3.0 million provided by in the same period of 2020, driven by higher cash operating profit (before non-cash depreciation and amortization and stock-based compensation charges). The key reasons for the increase in cash operating profit in the nine months ended September 30, 2021 in comparison to the nine months ended September 30, 2020, were higher levels of revenue and greater billable utilization resulting in higher profitability.
Investing Activities. Net cash used in investing activities during the nine months ended September 30, 2021 was $(33.6) million. which primarily reflects the acquisition of Tacit, compared to $(1.6) million used in the same period in 2020 reflecting mainly capital expenditures for computer hardware, related equipment and software.
Financing Activities. Net cash provided by financing activities was $105.6 million in the nine months ended September 30, 2021, reflecting the equity offering and warrant exercise proceeds. Net cash provided by financing activities was $82.9 million in the nine months ended September 30, 2020, reflecting primarily the proceeds from the Business Combination.
Contractual Obligations
Grid Dynamics’ outstanding operating leases and software service agreement obligations have not changed materially since December 31, 2020. In addition, Grid Dynamics purchases software licenses in the ordinary course of business.
Non-perpetual licenses are typically renewed annually. Grid Dynamics does not have any material obligations under contractual arrangements other than as disclosed in this report.
Off-Balance Sheet Arrangements and Commitments
Except for its credit support for the letter of credit and balances on corporate credit cards, Grid Dynamics does not have any off-balance sheet arrangements of the kind required to be disclosed under SEC rules and does not have any off-balance sheet or contingent commitments, except as described above with respect to operating leases.
As a result of analysis related to Grid Dynamics’ functional control of subcontractor GD Ukraine, LLC, the subcontractor was determined to be a variable interest entity (“VIE”) and is therefore consolidated in Grid Dynamics’ financial statements. The assets and liabilities of this VIE consist primarily of intercompany balances and transactions, all of which have been eliminated in consolidation.
Critical Accounting Policies
Grid Dynamics management’s discussion and analysis of our financial condition and results of operations is based on the condensed consolidated financial statements, which have been prepared in accordance with U.S. GAAP. Preparation of the financial statements requires Grid Dynamics to make judgments, estimates and assumptions that impact the reported amount of revenue and expenses, assets and liabilities and the disclosure of contingent assets and liabilities. Grid Dynamics considers an accounting judgment, estimate or assumption to be critical when (1) an estimate or assumption is complex in nature or requires a high degree of judgment, and (2) the use of different judgments, estimates and assumptions could have a material impact on Grid Dynamics’ condensed consolidated financial statements. There have been no changes to our significant accounting
34

policies described in our Annual Report on Form 10-K for the fiscal year ended December 31, 2020, as filed with the SEC on March 5, 2021, that have had a material impact on our condensed consolidated financial statements and related notes.
Emerging Growth Company Accounting Election
Section 102(b)(1) of the Jumpstart Our Business Startups Act of 2012 (“JOBS Act”) exempts emerging growth companies from being required to comply with new or revised financial accounting standards until private companies are required to comply with the new or revised financial accounting standards. The JOBS Act provides that a company can choose not to take advantage of the extended transition period and comply with the requirements that apply to non-emerging growth companies and any such election to not to take advantage of the extended transition period is irrevocable. Prior to the Business Combination, ChaSerg was an “emerging growth company” as defined in Section 2(a) of the Securities Act and has elected to take advantage of the benefits of this extended transition period. Following the consummation of the Business Combination, Grid Dynamics remains an emerging growth company and continues to take advantage of the benefits of the extended transition period.
Recently Adopted and Issued Accounting Pronouncements
Recently issued and adopted accounting pronouncements are described in Note 2 to Grid Dynamics’ condensed consolidated financial statements.
Item 3. Quantitative and Qualitative Disclosures About Market Risk
Grid Dynamics has in the past and may in the future be exposed to certain market and credit risks in the ordinary course of business, including exposure related to fluctuations in foreign currency rates, and on occasion and to a lesser extent, changes in interest rates and concentration of credit risk. In addition, Grid Dynamics’ international operations are subject to risks related to differing economic conditions, changes in political climate, differing tax structures, and other regulations and restrictions. See the section titled “Risk Factors” for additional information.
Foreign Currency Exchange Rate Risk
Grid Dynamics is exposed to foreign currency exchange rate risk and its profit margins are subject to volatility between periods due to changes in foreign currency exchange rates relative to the U.S. dollar. Grid Dynamics’ functional currency apart from the U.S. dollar includes EURO, British pounds, Mexican pesos, Moldovan leu. In addition, Grid Dynamics’ profit margins are subject to volatility as a result of changes in foreign exchange rates. When and where possible, Grid Dynamics seeks to match expenses to the U.S. dollar, and believes, due to Ukrainian payroll being pegged to the U.S. dollar, that a significant portion of its foreign currency exchange rate exposure to the Ukrainian hryvnia is naturally hedged. In future periods, Grid Dynamics may also become materially exposed to changes in the value of the Serbian dinar, Mexican pesos and Moldovan leu against the U.S. dollar, due to the recent acquisitions and continuous expansion of operations.
In the three months ended September 30, 2021, approximately 23.5%, 12.0% and 5.8% of Grid Dynamics’ $56.0 million of combined cost of revenue and total operating expenses were denominated in the Ukrainian hryvnia, Russian ruble, and Polish zloty, respectively. Comparatively, the same foreign currencies accounted for approximately 10.6%, 11.8% and 9.8% of Grid Dynamics’ $28.0 million of combined cost of revenue and total operating expenses in the three months ended September 30, 2020.
In the three months ended September 30, 2021:
a 10% decrease in the value of the Russian rouble against the U.S. dollar would have resulted in a $0.6 million increase in Grid Dynamics’ income from operations, while a 10% increase in the rouble’s value would have resulted in a $0.7 million decrease in income from operations.
a 10% decrease in the value of the Polish zloty against the U.S. dollar would have resulted in a $0.3 million increase in Grid Dynamics’ income from operations, while a 10% increase in the zloty’s value would have resulted in a $0.4 million decrease in income from operations.
35

In the three months ended September 30, 2020:
a 10% decrease in the value of the Russian rouble against the U.S. dollar would have resulted in a $0.3 million increase in Grid Dynamics’ income from operations, while a 10% increase in the rouble’s value would have resulted in a $0.4 million decrease in income from operations.
a 10% decrease in the value of the Polish zloty against the U.S. dollar would have resulted in a $0.2 million increase in Grid Dynamics’ income from operations, while a 10% increase in the zloty’s value would have resulted in a $0.3 million decrease in income from operations.
In the nine months ended September 30, 2021, approximately 24.6%, 11.6% and 6.9% of Grid Dynamics’ $143.2 million of combined cost of revenue and total operating expenses were denominated in the Ukrainian hryvnia, Russian ruble, and Polish zloty, respectively. Comparatively, the same foreign currencies accounted for approximately 10.7%, 14.5%, and 10.0% of Grid Dynamics’ $93.0 million of combined cost of revenue and total operating expenses in the nine months ended September 30, 2020.
In the nine months ended September 30, 2021:
a 10% decrease in the value of the Russian rouble against the U.S. dollar would have resulted in a $1.5 million increase in Grid Dynamics’ income from operations, while a 10% increase in the rouble’s value would have resulted in a $1.9 million decrease in income from operations.
a 10% decrease in the value of the Polish zloty against the U.S. dollar would have resulted in a $0.9 million n increase in Grid Dynamics’ income from operations, while a 10% increase in the zloty’s value would have resulted in a $1.1 million decrease in income from operations.
In the nine months ended September 30, 2020:
a 10% decrease in the value of the Russian ruble against the U.S. dollar would have resulted in a $1.2 million increase in Grid Dynamics’ income from operations, while a 10% increase in the ruble’s value would have resulted in a $1.5 million decrease in income from operations.
a 10% decrease in the value of the Polish zloty against the U.S. dollar would have resulted in a $0.8 million increase in Grid Dynamics’ income from operations, while a 10% increase in the zloty’s value would have resulted in a $1.0 million decrease in income from operations.
Grid Dynamics analyses sensitivity to the rouble and zloty separately because, in management’s experience, fluctuations in the value of these currencies against the U.S. dollar are frequently driven by distinct macroeconomic and geopolitical factors.
Grid Dynamics does not currently hedge its foreign currency exposure, although it seeks minimize it by limiting cash transfers to amounts necessary to fund subsidiary operating expenses for a short period, typically one week. Grid Dynamics’ management may evaluate new hedging strategies in future periods.
Item 4. Controls and Procedures
Evaluation of Disclosure Controls and Procedures
Our management, with the participation of our Chief Executive Officer and Chief Financial Officer, has evaluated the effectiveness of our disclosure controls and procedures (as such term is defined in Rules 13a-15(e) and 15d-15(e) under the Securities Exchange Act of 1934, as amended (the “Exchange Act”)) as of the end of the period covered by this quarterly report. Based on such evaluation, our Chief Executive Officer and Chief Financial Officer have concluded that, as of the end of such period, our disclosure controls and procedures were effective in recording, processing, summarizing and reporting on a timely basis, information required to be disclosed by us in the reports that we file or submit under the Exchange Act and were effective in ensuring that information required to be disclosed by us in the reports that we file or submit under the Exchange Act is accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial Officer, as appropriate to allow timely decisions regarding required disclosure.
36

Changes in Internal Control Over Financial Reporting
Our management, including the CEO and CFO, confirmed there have been no changes in our internal control over financial reporting during the three months ended September 30, 2021 that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.
Inherent Limitations on Effectiveness of Controls
Our management, including our CEO and CFO, do not expect that our disclosure controls or our internal control over financial reporting will prevent all errors and all fraud. A control system, no matter how well conceived and operated, can provide only reasonable, not absolute, assurance that the objectives of the control system are met. Further, the design of a control system must reflect the fact that there are resource constraints, and the benefits of controls must be considered relative to their costs. Because of the inherent limitations in all control systems, no evaluation of controls can provide absolute assurance that all control issues and instances of fraud, if any, have been detected. These inherent limitations include the realities that judgments in decision-making can be faulty, and that breakdowns can occur because of a simple error or mistake. Additionally, controls can be circumvented by the individual acts of some persons, by collusion of two or more people or by management override of the controls. The design of any system of controls is also based in part upon certain assumptions about the likelihood of future events, and there can be no assurance that any design will succeed in achieving its stated goals under all potential future conditions; over time, controls may become inadequate because of changes in conditions, or the degree of compliance with policies or procedures may deteriorate. Because of the inherent limitations in a cost-effective control system, misstatements due to error or fraud may occur and not be detected.
37

PART II — OTHER INFORMATION
Item 1. Legal Proceedings
Although we may, from time to time, be involved in litigation and claims arising out of our operations in the normal course of business, we are not currently a party to any material legal proceeding. In addition, we are not aware of any material legal or governmental proceedings against us or contemplated to be brought against us. Future litigation may be necessary, among other things, to defend us or our customers by determining the scope, enforceability and validity of third-party proprietary rights or to establish our proprietary rights. The results of any litigation cannot be predicted with certainty and, regardless of the outcome, litigation can have an adverse impact on our company because of defense and settlement costs, diversion of management resources and other factors.
Item 1A. Risk Factors
This Quarterly Report on Form 10-Q contains forward-looking statements that are subject to risks and uncertainties that could cause actual results to differ materially from those projected. These risks and uncertainties include, but are not limited to, the risk factors set forth below. The risks and uncertainties described in this Quarterly Report on Form 10-Q are not the only ones we face. Additional risks and uncertainties not presently known to us or that we currently believe are immaterial may also affect our business. See the section titled “Special Note Regarding Forward-Looking Statements” of this Quarterly Report on Form 10-Q for a discussion of the forward-looking statements that are qualified by these risk factors. If any of these known or unknown risks or uncertainties actually occurs and have a material adverse effect on us, our business, financial condition and results of operations could be seriously harmed.
Summary of Risk Factors
Our business is subject to numerous risks and uncertainties that you should consider before investing in our company, as fully described below. The principal factors and uncertainties that make investing in our company risky include, among others:
We have a relatively short operating history and operate in a rapidly evolving industry, which makes it difficult to evaluate our future prospects and may increase the risk that we will not continue to be successful and may adversely impact our stock price.
We may be unable to effectively manage our growth or achieve anticipated growth, which could place significant strain on our management personnel, systems and resources.
Our revenues have historically been highly dependent on a limited number of clients and industries that are affected by seasonal trends, and any decrease in demand for outsourced services in these industries may reduce our revenues and adversely affect our business, financial condition and results of operations.
The impact of the COVID-19 pandemic has and may continue to affect our overall financial performance, business operations, and stock price.
Our revenues are highly dependent on clients primarily located in the U.S. Any economic downturn in the U.S. or in other parts of the world, including Europe, or disruptions in the credit markets may have a material adverse effect on our business, financial condition and results of operations.
We face intense competition.
Damage to our reputation may adversely impact our ability to generate and retain business.
Our failure to successfully attract, hire, develop, motivate and retain highly skilled personnel could have a significant adverse effect on our business, financial condition, and results of operations.
Our business operations may be severely disrupted if we lose the services of our senior executives and key employees.
Failure to adapt to changing technologies, methodologies, and evolving industry standards may have a material adverse effect on our business, financial condition, and results of operations.
Security breaches, system failures or errors, and other disruptions to our network could result in disclosure of confidential information and expose us to liability, which would cause our business and reputation to suffer.
Undetected software design defects, errors or failures may result in loss of business or in liabilities that could have a material adverse effect on our reputation, business and results of operations.
38

Acquisitions, strategic investments, partnerships or alliances could be difficult to identify and integrate, divert the attention of management, disrupt our business, dilute stockholder value and adversely affect our financial condition and results of operations, we may not achieve the financial and strategic goals that were contemplated at the time of a transaction, and we may be exposed to claims, liabilities and disputes as a result of the transaction that may adversely impact our business, operating results and financial condition.
Risks Related to Our Business, Operations and Industry
We have a relatively short operating history and operate in a rapidly evolving industry, which makes it difficult to evaluate future prospects and may increase the risk that we will not continue to be successful and may adversely impact our stock price.
We were founded in 2006 and have a relatively short operating history in the technology services industry, which is competitive and continuously evolving, subject to rapidly changing demands and constant technological developments. As a result, success and performance metrics are difficult to predict and measure. Since services and technologies are rapidly evolving and each company within the industry can vary greatly in terms of the services it provides, its business model and its results of operations, it can be difficult to predict how any company’s services, including ours, will be received in the market.
While many Fortune 1000 enterprises, including our clients, have been willing to devote significant resources to incorporate emerging technologies and related market trends into their business models, they may not continue to spend any significant portion of their budgets on services like those provided by us in the future. Neither our past financial performance nor the past financial performance of any other company in the technology services industry is indicative of how we will fare financially in the future. Our future profits may vary substantially from those of other companies and our past profits, making an investment in us risky and speculative. If clients’ demand for our services declines as a result of economic conditions, market factors or shifts in the technology industry, our business, financial condition and results of operations would be adversely affected.
As a recently formed public company, our stock performance is highly dependent on our ability to successfully execute and grow the business. Consequently, our stock price may be adversely impacted by our inability to execute to our plan, our inability to meet or exceed forward looking financial forecasts, and our inability to achieve our stated short-term and long-term goals.
We may be unable to effectively manage our growth or achieve anticipated growth, which could place significant strain on our management personnel, systems and resources.
Continued growth and expansion are currently increasing, and in the future may increase challenges we face in recruiting, training and retaining sufficiently skilled professionals and management personnel, maintaining effective oversight of personnel and delivery centers, developing financial and management controls, coordinating effectively across geographies and business units, and preserving our culture and values. Failure to manage growth effectively could have a material adverse effect on the quality of the execution of our engagements, our ability to attract and retain IT professionals, as well as our business, financial condition and results of operations.
In addition, as we increase the size and complexity of projects that we undertake with clients, add new delivery sites, introduce new services or enter into new markets, we may face new market, technological, operational, compliance and administrative risks and challenges, including risks and challenges unfamiliar to us. We may not be able to mitigate these risks and challenges to achieve our anticipated growth or successfully execute large and complex projects, which could materially adversely affect our business, prospects, financial condition and results of operations.
Our revenues have historically been highly dependent on a limited number of clients and industries that are affected by seasonal trends, and any decrease in demand for outsourced services in these industries may reduce our revenues and adversely affect our business, financial condition and results of operations.
Our revenues have historically been highly dependent on a limited number of clients. In the three months ended September 30, 2021 and 2020, we generated a significant portion of our revenues from our largest clients. For example, we generated approximately 58.2% and 77.7% of our revenue from our 10 largest clients during the three months ended September 30, 2021 and 2020, respectively, and approximately 61.7% and 81.2% of our revenue from our 10 largest clients during nine months ended September 30, 2021 and 2020, respectively. Our top two clients each accounted for greater than 10% of our revenue for the three and nine months ended September 30, 2021 and 2020, respectively. Since a substantial portion of our revenue is derived through time and materials contracts, which are mostly short-term in nature, a major client in one year may not provide the same level of revenues for us in any subsequent year. In addition, a significant portion of our revenues is concentrated in our
39

top two industry verticals: technology and retail. Our growth largely depends on our ability to diversify the industries in which we serve, continued demand for our services from clients in these industry verticals and other industries that we may target in the future, as well as on trends in these industries to outsource the type of services we provide.
Our business is also subject to seasonal trends that impact our revenues and profitability between quarters, driven by the timing of holidays in the countries in which we operate and the U.S. retail cycle, which drives the behavior of several of our retail clients. Excluding the impact of growth in our book of business, we have historically recorded higher revenue and gross profit in the second and third quarters of each year compared to the first and fourth quarters of each year. The Christmas holiday season in Russia and Ukraine, for example, falls in the first quarter of the calendar year, resulting in reduced activity and billable hours of our engineering personnel. In addition, many of our retail sector clients tend to slow their discretionary spending during the holiday sale season, which typically lasts from late November (before Thanksgiving) through late December (after Christmas). Such seasonal trends may cause reductions in our profitability and profit margins during periods affected.  
A reduction in demand for our services and solutions caused by seasonal trends, downturns in any of our targeted industries, a slowdown or reversal of the trend to outsource IT services in any of these industries or the introduction of regulations that restrict or discourage companies from outsourcing may result in a decrease in the demand for our services and could have a material adverse effect on our business, financial condition and results of operations.
The impact of the COVID-19 pandemic has and may continue to affect our overall financial performance, business operations, and stock price.
In December 2019, a novel coronavirus COVID-19 was reported in China, and in March 2020, the World Health Organization declared it a pandemic. This contagious disease pandemic has continued to spread across the globe and is impacting worldwide economic activity and financial markets, significantly increasing economic volatility and uncertainty. In response to this global pandemic, local, state, and federal governments have been prompted to take unprecedented steps that include, but are not limited to, travel restrictions, closure of businesses, social distancing, and quarantines.

From March 2020 onwards, we started witnessing the impacts of the COVID-19 pandemic to our revenues, largely as a consequence of the effect of the pandemic on the business conditions at some of our customers’ operations. The impacts have been more pronounced at our customers exposed to the retail vertical where store closures resulted in sales being severely impacted. Although we witnessed recovery in this vertical since bottoming in the second quarter of 2020, some of our retail customers have not come back to pre-COVID level. The impact of the pandemic to other verticals of our business has largely been determined by customer-specific dynamics. The ongoing COVID-19 pandemic may pose risks in the future to our business as some of our customers are unable to recover to pre-COVID 19 levels of operation. Examples of the COVID-19 pandemic’s impact to our business have included a temporary scale back to our personnel on projects, our customers placing projects and statements of work (“SOWs”) on temporary hold, and request for longer payment terms. Additionally, because more of our personnel are working remotely, we face increased cyber threats that may affect our systems and networks or those of our clients and contractors, and we anticipate the potential for increased costs to maintain and help secure our infrastructure and data.
Although recent vaccine approvals and rollout have improved the outlook, renewed waves and new variants pose concerns for the outlook. Growth may be stymied if virus surges (including from new variants) prove difficult to contain, infections and deaths mount rapidly before vaccines are widely available, and social distancing or lockdowns are more stringent than anticipated. Slower-than-anticipated progress on medical interventions could dampen hopes of a relatively quick exit from the COVID-19 pandemic and weaken confidence. Specifically, vaccine rollout could suffer delays or be uneven, widespread hesitancy could hamper vaccine take-up, vaccines could deliver shorter-lived immunity than anticipated and advances on therapies could be limited. Intensifying social unrest, including due to higher inequality and unequal access to vaccines and therapies, could further complicate the recovery. Moreover, if policy support is withdrawn before full economic recovery, bankruptcies of viable but illiquid companies could mount, leading to further employment and income losses. The ensuing tighter financial conditions could increase rollover risks for vulnerable borrowers, add to the already large number of economies in debt distress, and increase insolvencies among corporations and households.
In the United States, given the widespread impact of the COVID-19 pandemic, substantial governmental support is still required and the recently approved government support may be insufficient for long-term economic sustainability should there be a protracted recovery. Furthermore, in a scenario of investors fleeing the Dollar could result in elevated levels of inflation expectations and interest rates. Additionally, high unemployment could lead to mortgage and rental defaults adding losses to the commercial banking industry, resulting in higher loan-loss provision, tighter lending standards and lending curtailment. If the impacts of the COVID-19 pandemic are materially prolonged, it could result in a cascade of additional corporate filings for
40

bankruptcies, further eroding market confidence and increasing unemployment rates. Together, these uncertainties and risks could have a material adverse impact not only on our financial condition, business and results of operations in the United States, but also on our consolidated financial conditions, business and results of operations.

There are no comparable recent events which may provide guidance as to the effect of the spread and the ultimate impact of the COVID-19 pandemic. Consequently, the total magnitude of impact to our business and duration of impact is uncertain and difficult to reasonably estimate at this time.
We continue to take precautionary measures intended to minimize the risk of the virus to our employees, our customers, and the communities in which we operate that include suspension of all non-essential travel. All of our facilities in the Central and Eastern Europe (“CEE”) region have been opened for employees to work following local government guidelines. That said, the COVID-19 pandemic has placed restrictions in movement, and the majority of our employees continue to work remotely. Additionally, we have been successful in transitioning the majority of our workforce to work remotely and this has resulted in minimal disruption in our ability to deliver services to our customers.
As of September 30, 2021 and December 31, 2020 our allowance for doubtful accounts was $0.3 million and $0.4 million, respectively and we continue to be engaged with all of our customers regarding their ability to fulfill their payment obligations. We continue to review our accounts receivable on a regular basis and have put in place regular review and processes to ensure payments from our customers.
Our revenues are highly dependent on clients primarily located in the U.S. Any economic downturn in the U.S. or in other parts of the world, including Europe, or disruptions in the credit markets may have a material adverse effect on our business, financial condition and results of operations.
The IT services industry is particularly sensitive to the economic environment and tends to decline during general economic downturns. We derive the majority of our revenues from clients in the U.S. In the event of an economic downturn in the U.S. or in other parts of the world, including Europe (where we have gained customers in the Netherlands, Germany and the United Kingdom through our acquisition of Daxx Web Industries B.V.("Daxx") in December 2020), as well as through our acquisition of Tacit in May 2021 our existing and prospective clients may reduce or postpone their technology spending significantly, which may in turn lower the demand for our services and may have a material adverse effect on our business, financial condition and results of operations. In addition, if a disruption in the credit markets were to occur, it could pose a risk to our business if clients or vendors are unable to obtain financing to meet payment or delivery obligations to us or if we are unable to obtain necessary financing. The COVID-19 pandemic has had adverse effects on economies and financial markets globally, which have particularly impacted many small, medium as well as large-sized businesses. Although the U.S. government and others throughout the world have or have taken steps to provide monetary and fiscal assistance to individuals and businesses affected by the pandemic, it is unclear whether these government actions will be sufficient to successfully avert or mitigate any economic downturn. Any economic downturn resulting from the COVID-19 pandemic and preventative measures taken by governments and private business worldwide could decrease technology spending and negatively affect demand for our offerings, which could materially adversely affect our business, prospects, financial condition and results of operations.
We face intense competition.
The market for technology and IT services is highly competitive and subject to rapid change and evolving industry standards and we expect competition to persist and intensify. We face competition from offshore IT services providers in other outsourcing destinations with low wage costs such as India, China, CEE countries and Latin America, as well as competition from large, global consulting and outsourcing firms and in-house IT departments of large corporations. Industry clients tend to engage multiple IT services providers instead of using an exclusive IT services provider, which could reduce our revenues to the extent that our clients obtain services from competing companies. Industry clients may prefer IT services providers that have more locations or that are based in countries that are more cost-competitive, stable and/or secure than some of the emerging markets in which we operate.
Our primary competitors include IT service providers such as Andersen Lab, Ciklum, EPAM Systems, Inc., Globant S.A. and Endava plc; global consulting and traditional IT services companies, such as Accenture plc, Capgemini SE, Cognizant Technology Solutions Corporation, SoftServe, Inc. and Tata Consultancy Services Limited; and in-house development departments of our clients. Many of our present and potential competitors have substantially greater financial, marketing and technical resources, and name recognition than we do. Therefore, they may be able to compete more aggressively on pricing or devote greater resources to the development and promotion of technology and IT services and we may be unable to retain our clients while competing against such competitors. Increased competition as well as our inability to compete successfully may have a material adverse effect on our business, prospects, financial condition and results of operations.
41

Damage to our reputation may adversely impact our ability to generate and retain business.
Since our business involves providing tailored services and solutions to clients, we believe that our corporate reputation is a significant factor when an existing or prospective client is evaluating whether to engage our services as opposed to those of our competitors. In addition, we believe that our brand name and reputation also play an important role in recruiting, hiring and retaining highly skilled personnel.
However, our brand name and reputation is potentially susceptible to damage by factors beyond our control, including actions or statements made by current or former clients and employees, competitors, vendors, adversaries in legal proceedings, government regulators and the media. There is a risk that negative information about us, even if untrue, could adversely affect our business. Any damage to our reputation could be challenging to repair, could make potential or existing clients reluctant to select us for new engagements, could adversely affect our recruitment and retention efforts, and could also reduce investor confidence.
Our failure to successfully attract, hire, develop, motivate and retain highly skilled personnel could have a significant adverse effect on our business, financial condition, and results of operations.
Our continued growth and success and operational efficiency is dependent on our ability to attract, hire, develop, motivate and retain highly skilled personnel, including IT engineers and other technical personnel, in the geographically diverse locations in which we operate. In the current environment, competition for highly skilled IT professionals is particularly intense and as a consequence, we are witnessing increasing challenges around employee retention, talent shortages, and attrition rates. While our management targets a voluntary attrition rate (expressed as a percentage) no higher than in the low-twenties, the significant market demand for highly skilled IT personnel and competitors’ activities may induce our qualified personnel to leave and make it more difficult for us to recruit new employees with suitable knowledge, experience and professional qualifications. High attrition rates of IT personnel would increase our operating costs, including hiring and training costs, and could have an adverse effect on our ability to complete existing contracts in a timely manner, meet client objectives and expand our business. Failure to attract, hire, develop, motivate and retain personnel with the skills necessary to serve our clients could decrease our ability to meet and develop ongoing and future business and could materially adversely affect our business, financial condition and results of operations.
Our business operations may be severely disrupted if we lose the services of our senior executives and key employees.
Our success depends substantially upon the continued services of our senior executives and other key employees. If we lose the services of one or more of such senior executives or key employees, as recently occurred in June 2021 when Victoria Livschitz resigned as Executive Vice President of Customer Success and became our consultant and Max Martynov resigned as our Chief Technology Officer, our business operations can be disrupted, and we may not be able to replace them easily or at all. In addition, competition for senior executives and key personnel in our industry is intense, and we may be unable to retain our senior executives and key personnel or attract and retain new senior executives and key personnel in the future, in which case our business may be severely disrupted.
Failure to adapt to changing technologies, methodologies, and evolving industry standards may have a material adverse effect on our business, financial condition, and results of operations.
We operate in an industry characterized by rapidly changing technologies, methodologies and evolving industry standards. Our future success depends in part upon our ability to anticipate developments in our industry, enhance our existing services and to develop and introduce new services to keep pace with such changes and developments and to meet changing client needs. 
Development and introduction of new services and products is expected to become increasingly complex and expensive, involve a significant commitment of time and resources, and subject to a number of risks and challenges, including:
difficulty or cost in updating services, applications, tools and software and in developing new services quickly enough to meet clients’ needs;
difficulty or cost in making some features of software work effectively and securely over the internet or with new or changed operating systems;
difficulty or cost in updating software and services to keep pace with evolving industry standards, methodologies, regulatory and other developments in the industries where our clients operate; and
difficulty or cost in maintaining a high level of quality and reliability as we implement new technologies and methodologies.
42

We may not be successful in anticipating or responding to these developments in a timely manner, and even if we do so, the services, technologies or methodologies we develop or implement may not be successful in the marketplace. Furthermore, services, technologies or methodologies that are developed by competitors may render our services non-competitive or obsolete. Our failure to adapt and enhance our existing services and to develop and introduce new services to promptly address the needs of our clients may have a material adverse effect on our business, financial condition and results of operations.
Security breaches, system failures or errors, and other disruptions to our network could result in disclosure of confidential information and expose us to liability, which would cause our business and reputation to suffer.
We often have access, or are required, to collect, process, transmit and store sensitive or confidential client and customer data, including intellectual property, proprietary business information of Grid Dynamics and our clients, and personally identifiable information of our clients, customers, employees, contractors, service providers, and others. We use our data centers and networks, and certain networks and other facilities and equipment of our contractors and service providers, for these purposes. Despite our security measures, our information technology and infrastructure may be vulnerable to attacks and disruptions by hackers or other third parties or otherwise may be breached due to human error, phishing attacks, social engineering, malfeasance or other disruptions. During the COVID-19 pandemic, because more of our personnel are working remotely, we face increased risks of such attacks and disruptions that may affect our systems and networks or those of our clients and contractors. Any such breach or disruption could compromise our data centers, networks and other equipment and the information stored or processed there could be accessed, disclosed, altered, misappropriated, lost or stolen. In addition, any failure or breach of security in a client’s system relating to the services we provide could also result in loss or misappropriation of, or unauthorized access, alteration, use, acquisition or disclosure of sensitive or confidential information, and may result in a perception that we or our contractors or service providers caused such an incident, even if Grid Dynamics’ and our contractors’ networks and other facilities and equipment were not compromised.
Our contractors and service providers face similar risks with respect to their facilities and networks used by us, and they also may suffer outages, disruptions, and security incidents and breaches. Breaches and security incidents suffered by us and our contractors and service providers may remain undetected for an extended period. Any such breach, disruption or other circumstance leading to loss, alteration, misappropriation, or unauthorized use, access, acquisition, or disclosure of sensitive or confidential client or customer data suffered by us or our contractors or service providers, or the perception that any may have occurred, could expose us to claims, litigation, and liability, regulatory investigations and proceedings, cause us to lose clients and revenue, disrupt our operations and the services provided to clients, damage our reputation, cause a loss of confidence in our products and services, require us to expend significant resources to protect against further breaches and to rectify problems caused by these events, and result in significant financial and other potential losses.
Our errors and omissions insurance covering certain damages and expenses may not be sufficient to compensate for all liability. Although we maintain insurance for liabilities incurred as a result of certain security-related damages, we cannot be certain that our coverage will be adequate for liabilities actually incurred, that insurance will continue to be available to us on economically reasonable terms, or at all, or that any insurer will not deny coverage as to any future claim. The successful assertion of one or more large claims against us that exceeds available insurance coverage, or the occurrence of changes in our insurance policies, including premium increases or the imposition of large deductible or co-insurance requirements, could have a material adverse effect on our business, including our financial condition, results of operations, and reputation.
Undetected software design defects, errors or failures may result in loss of business or in liabilities that could have a material adverse effect on our reputation, business and results of operations.
Our services involve developing software solutions for our clients and we may be required to make certain representations and warranties to our clients regarding the quality and functionality of our software. Given that our software solutions have a high degree of technological complexity, they could contain design defects or errors that are difficult to detect or correct. We cannot provide assurances that, despite testing by us, errors or defects will not be found in our software solutions. Any such errors or defects could result in litigation, other claims for damages against us, the loss of current clients and loss of, or delay in, revenues, loss of market share, a failure to attract new clients or achieve market acceptance, diversion of development resources, increased support or service costs, as well as reputational harm and thus could have a material adverse effect on our reputation, business, prospects, financial condition and results of operations.

43

We do not have long-term commitments from our clients, and our clients may terminate contracts before completion or choose not to renew contracts.
Our clients are generally not obligated for any long-term commitments to us. Although a substantial majority of our revenues are generated from repeated business, which we define as revenues from a client who also contributed to our revenues during the prior year, our engagements with our clients are typically for projects that are singular in nature. In addition, our clients can terminate many of our master services agreements and work orders with or without cause, and in most cases without any cancellation charge. Therefore, we must seek to obtain new engagements when our current engagements are successfully completed or are terminated as well as maintain relationships with existing clients and secure new clients to expand our business.
There are a number of factors relating to our clients that are outside of our control which might lead them to terminate a contract or project with us, including:
financial difficulties for the client;
a change in strategic priorities, resulting in elimination of the impetus for the project or a reduced level of technology spending;
a change in outsourcing strategy resulting in moving more work to the client’s in-house technology departments or to our competitors;
the replacement by our clients of existing software with packaged software supported by licensors; and
mergers and acquisitions or significant corporate restructurings.
Failure to perform or observe any contractual obligations could result in cancellation or non-renewal of a contract, which could cause us to experience a higher than expected number of unassigned employees and an increase in our cost of revenues as a percentage of revenues, until we are able to reduce or reallocate our headcount. The ability of our clients to terminate agreements makes our future revenues uncertain. We may not be able to replace any client that elects to terminate or not renew its contract with us, which could materially adversely affect our revenues and thus our results of operations.
In addition, some of our agreements specify that if a change of control of our company occurs during the term of the agreement, the client has the right to terminate the agreement. If any future event triggers any change-of- control provision in our client contracts, these master services agreements may be terminated, which would result in loss of revenues.
Failure to successfully deliver contracted services or causing disruptions to clients’ businesses may have a material adverse effect on our reputation, business, financial condition, and results of operations.
Our business is dependent on our ability to successfully deliver contracted services in a timely manner. Any partial or complete failure of our equipment or systems, or any major disruption to basic infrastructure like power and telecommunications in the locations in which we operate, could impede our ability to provide contracted services to our clients. In addition, if our professionals make errors in the course of delivering services to our clients or fail to consistently meet the service requirements of a client, these errors or failures could disrupt the client’s business. Any failure to successfully deliver contracted services or causing disruptions to a client’s business, including the occurrence of any failure in a client’s system or breach of security relating to the services provided by us, may expose us to substantial liabilities and have a material adverse effect on our reputation, business, financial condition and results of operations.
Additionally, our clients may perform audits or require us to perform audits and provide audit reports with respect to the IT and financial controls and procedures that we use in the performance of services for our clients. Our ability to acquire new clients and retain existing clients may be adversely affected and our reputation could be harmed if we receive a qualified opinion, or if we cannot obtain an unqualified opinion in a timely manner, with respect to our controls and procedures in connection with any such audit. We could also incur liability if our controls and procedures, or the controls and procedures we manage for a client, were to result in an internal control failure or impair our client’s ability to comply with its own internal control requirements. If we or our partners fail to meet our contractual obligations or otherwise breach obligations to our clients, we could be subject to legal liability, which may have a material and adverse effect on our reputation, business, financial condition, and results of operations.
44

We rely on software, hardware and SaaS technologies from third parties that may be difficult to replace or that may cause errors or defects in, or failures of, our services or solutions.
We rely on software and hardware from various third parties as well as hosted Software as a Service ("SaaS") applications from third parties to deliver our services and solutions. If any of these software, hardware or SaaS applications become unavailable due to loss of license, extended outages, interruptions, or because they are no longer available on commercially reasonable terms, there may be delays in the provisioning of our services until equivalent technology is either developed by us, or, if available, is identified, obtained and integrated, which could increase our expenses or otherwise harm our business. Furthermore, any errors or defects in or failures of third-party software, hardware or SaaS applications could result in errors or defects in or failures of our services and solutions, which could be costly to correct and have an adverse effect on our reputation, business, financial condition and results of operations.
Existing insurance coverage and limitation of liability provisions in service contracts may be inadequate to protect us against losses.
We maintain certain insurance coverage, including professional liability insurance, director and officer insurance, property insurance for certain of our facilities and equipment, and business interruption insurance for certain of our operations. However, we do not insure for all risks in our operations and if any claims for injury are brought against us, or if we experience any business disruption, litigation or natural disaster, we might incur substantial costs and diversion of resources.
Most of the agreements we have entered into with our clients require us to purchase and maintain specified insurance coverage during the terms of the agreements, including commercial general insurance or public liability insurance, umbrella insurance, product liability insurance, and workers’ compensation insurance. Some of these types of insurance are not available on reasonable terms or at all in some countries in which we operate.
Our liability for breach of our obligations is in some cases limited under client contracts. Such limitations may be unenforceable or otherwise may not protect us from liability for damages. In addition, our existing contracts may not limit certain liabilities, such as claims of third parties for which we may be required to indemnify our clients. The successful assertion of one or more large claims against us in amounts greater than those covered by our current insurance policies could materially adversely affect our business, financial condition and results of operations. Even if such assertions against us are unsuccessful, we may incur reputational harm and substantial legal fees.
If we are not able to maintain an effective system of internal control over financial reporting, current and potential investors could lose confidence in our financial reporting, which could harm our business and have an adverse effect on our stock price. Management identified a material weakness in our internal controls over financial reporting in 2019 and although this material weakness has since been remediated, we cannot provide assurances that additional material weaknesses, or significant deficiencies, will not occur in the future.
Any failure to maintain effective internal controls over our financial reporting could materially and adversely affect us. Section 404 of the Sarbanes-Oxley Act requires us to include in our annual reports on Form 10-K an assessment by management of the effectiveness of our internal controls over financial reporting. In addition, we will be required to have our independent public accounting firm attest to and report on management’s assessment of the effectiveness of our internal control over financial reporting when we cease qualifying as an “emerging growth company” pursuant to the JOBS Act. If we are unable to conclude that we have effective internal control over financial reporting or, if our independent auditors are unable to provide us with an attestation and an unqualified report as to the effectiveness of our internal control over financial reporting, investors could lose confidence in the reliability of our financial statements, which could result in a decrease in the value of our securities.
In 2019, management identified a material weakness in our internal control over financial reporting. A material weakness is defined as a deficiency, or a combination of deficiencies, in internal control over financial reporting, such that there is a reasonable possibility that a material misstatement of our financial statements will not be prevented or detected on a timely basis. Subsequent to the original issuance of the private company financial statements for the year ended December 31, 2018, we identified balances that were accounted for or presented incorrectly under GAAP relating to stock-based compensation and the presentation of retention bonuses and depreciation on the consolidated statement of income and comprehensive income.
The material weakness identified was a lack of sufficient resources with appropriate depth and experience to interpret complex accounting guidance and prepare financial statements and related disclosures in accordance with GAAP.
We have taken steps to enhance our internal control environment, including hiring a new Chief Financial Officer in December 2019, hiring a Global Controller in May 2020, and hiring additional qualified accounting and financial reporting personnel.
45

Additionally, our new enterprise resource planning system, which has been implemented in phases since January 2020, has enhanced our internal controls over financial reporting. Given a combination of increased personnel, greater automation with software systems, and implementation of more detailed processes and procedures over the course of the year ended December 31, 2020, management considers this material weakness to have been remediated as of December 31, 2020.
If additional material weaknesses, or significant deficiencies, in internal controls are discovered in the future, they may adversely affect our ability to record, process, summarize and report financial information in a timely and accurate manner and, as a result, our financial statements may contain material misstatements or omissions.
Our global business, especially in CIS and CEE countries, exposes us to significant legal, economic, tax and political risks.
We have significant operations in certain emerging market economies, which creates legal, economic, tax and political risks. Risks inherent in conducting international operations include:
less established legal systems and legal ambiguities, inconsistencies and anomalies;
changes in laws and regulations;
application and imposition of protective legislation and regulations relating to import or export, including tariffs, quotas and other trade protection measures;
difficulties in enforcing intellectual property and/or contractual rights;
bureaucratic obstacles and corruption;
compliance with a wide variety of foreign laws, including those relating to privacy and data protection;
restrictions on the repatriation of dividends or profits;
expropriation or nationalization of property;
restrictions on currency convertibility and exchange controls;
fluctuations in currency exchange rates;
potentially adverse tax consequences;
competition from companies with more experience in a particular country or with international operations;
civil strife;
unstable political and military situations; and
overall foreign policy and variability of foreign economic conditions, including the effects of the COVID-19 pandemic.

The legal systems of Russia, Ukraine, Poland and Serbia, where we have significant operations,as well as Moldova, where we have acquired operations through the Tacit acquisition completed on May 29, 2021, are often beset by legal ambiguities as well as inconsistencies and anomalies due to the relatively recent enactment of many laws that may not always coincide with market developments. Furthermore, legal and bureaucratic obstacles and corruption exist to varying degrees in each of these countries. In such environments, our competitors may receive preferential treatment from governments, potentially giving them a competitive advantage. Governments may also revise existing contract rules and regulations or adopt new ones at any time and for any reason, and government officials may apply contradictory or ambiguous laws or regulations in ways that could materially adversely affect our business and operations in such countries. Any of these changes could impair our ability to obtain new contracts or renew or enforce contracts under which we currently provide services or to which we are a party. Any new contracting methods could be costly or administratively difficult for us to implement, which could materially adversely affect our business and operations. We cannot guarantee that regulators, judicial authorities or third parties in Russia, Ukraine, Poland and Serbia will not challenge our (including our subsidiaries’) compliance with applicable laws, decrees and regulations. In addition to the foregoing, selective or arbitrary government actions may include withdrawal of licenses, sudden and unexpected tax audits, criminal prosecutions and civil actions, all of which could have a material adverse effect on our business, financial condition and results of operations.
The banking and other financial systems in certain Commonwealth of Independent States (“CIS”) and CEE countries where we operate remain subject to periodic instability and generally do not meet the banking standards of more developed markets. A financial crisis or the bankruptcy or insolvency of banks through which we receive, or with which we hold, funds may result in the loss of our deposits or adversely affect our ability to complete banking transactions in that region, which could materially adversely affect our business and financial condition.
46

Furthermore, existing tensions and the emergence of new or escalated tensions in CIS and CEE countries could further exacerbate tensions between such countries and the U.S. Such tensions, concerns regarding information security, and potential imposition of additional sanctions by the U.S. and other countries may discourage existing or prospective clients to engage our services, have a negative effect on our ability to develop or maintain our operations in the countries where we currently operate, and disrupt our ability to attract, hire and retain employees. The occurrence of any such event may have a material adverse effect on our business, financial condition and results of operations.
As a result of our acquisition of Tacit on May 29, 2021, we have acquired operations in Guadalajara, Mexico. The laws and regulations in Mexico to which we have become subject thereby, and interpretations thereof, may change, sometimes substantially, as a result of a variety of factors beyond our control, including political, economic, regulatory or social events. As a result of amendments in May 2019 to the Mexican Federal Labor Law (Ley Federal del Trabajo) and other related regulations, among other things, new labor authorities and courts were created, new bargaining procedures were implemented and provisions related to employees’ freedom of association and organization, collective bargaining agreements, and rules against labor discrimination were issued or amended. We cannot assure you that these changes will not lead to an increase in litigation, labor activism or increasingly contentious labor relations, which in turn may adversely affect our business, financial condition, results of operations and prospects, particularly in Mexico. These and any other policies, laws and regulations which are further adopted could result in a deterioration of investment sentiment, political and economic uncertainty, and increased costs for our business, which may in turn have a material adverse effect on our business, financial condition, liquidity and results of operations.

The extent to which the COVID-19 pandemic continues to impact our results will depend on future developments, which are highly uncertain and cannot be predicted, including the duration of the pandemic, travel restrictions and social distancing in the CIS and CEE countries, the U.S. and other countries, business closures or business disruptions and the effectiveness of actions taken by governments and private businesses to attempt to contain and treat the disease. Any prolonged shut down of a significant portion of global economic activity or downturn in the global economy, along with any adverse effects on industries in which our customers operate, could materially and adversely impact our business, results of operations and financial condition.
Our results of operations and financial condition could be materially affected by the enactment of legislation implementing changes in the U.S. taxation of international business activities or the adoption of other tax reform policies.
In 2021, President Joseph R. Biden, released the Made in America Tax Plan that proposed several significant modifications to key provisions, as well as introduced new provisions, to the U.S. internal revenue code. Although it is uncertain if some or all of the identified provisions will be enacted, a change in U.S. tax law may materially and adversely impact our income tax liability, provision for income taxes, and effective tax rate.

The tax rates and rules applicable to our stockholders could be materially affected by the enactment of legislation implementing changes in U.S. tax law.

There have been reports that President Biden’s tax reform proposals may include increases to the tax rates applicable to individuals, including the long-term capital gains rate for individuals whose gross income exceeds certain limits. If these or other proposals are enacted, the tax consequences to U.S. Holders (as defined below) of owning and disposing of our common shares may differ from those discussed below in “Material U.S. Federal Income and Estate Tax Consequences for Non-U.S. Holders of Common Stock.” Potential Investors are urged to consult their own tax advisors on the potential impact of U.S. tax reform to an investment in our common shares.

Our effective tax rate could be adversely affected by several factors.
We conduct business globally and file income tax returns in multiple jurisdictions. Our effective tax rate could be materially adversely affected by several factors, including changes in the amount of income taxed by, or allocated to, the various jurisdictions in which we operate that have differing statutory tax rates; changing tax laws, regulations and interpretations of such tax laws in multiple jurisdictions; and the resolution of issues arising from tax audits or examinations and any related interest or penalties. In particular, there have been significant changes to the taxation systems in CEE countries in recent years as the authorities have gradually replaced or introduced new legislation regulating the application of major taxes such as corporate income tax, value-added tax, corporate property tax, personal income taxes and payroll taxes. Furthermore, any significant changes to the Tax Cuts and Jobs Act (“U.S. Tax Act”) enacted in 2017, or to regulatory guidance associated with the U.S. Tax Act, could materially adversely affect our effective tax rate.
The determination of our provision for income taxes and other tax liabilities requires estimation, judgment and calculations where the ultimate tax determination may not be certain. Our determination of tax liability is always subject to review or
47

examination by authorities in various jurisdictions. If a tax authority in any jurisdiction reviews any of our tax returns and proposes an adjustment, including a determination that the transfer prices and terms we have applied are not appropriate, such an adjustment could have an adverse effect on our business, financial condition and results of operations.
We are unable to predict what tax reforms may be proposed or enacted in the future or what effect such changes would have on our business, but such changes, to the extent they are brought into tax legislation, regulations, policies or practices in jurisdictions in which we operate, could increase the estimated tax liability that we have expensed to date and paid or accrued on our balance sheets, and otherwise affect our financial position, future results of operations, cash flows in a particular period and overall or effective tax rates in the future in countries where we have operations, reduce post-tax returns to our stockholders and increase the complexity, burden and cost of tax compliance.
There may be adverse tax and employment law consequences if the independent contractor status of some of our personnel or the exempt status of our employees is successfully challenged.
Certain of our personnel are retained as independent contractors. The criteria to determine whether an individual is considered an independent contractor or an employee are typically fact intensive and vary by jurisdiction, as can the interpretation of the applicable laws. If a government authority or court makes any adverse determination with respect to some or all of our independent contractors, we could incur significant costs, including for prior periods, in respect of tax withholding, social security taxes or payments, workers’ compensation and unemployment contributions, and recordkeeping, or we may be required to modify our business model, any of which could materially adversely affect our business, financial condition and results of operations.
Global mobility of employees may potentially create additional tax liabilities for us in different jurisdictions.
In performing services to clients, our employees may be required to travel to various locations. Depending on the length of the required travel and the nature of employees’ activities the tax implications of travel arrangements vary, with generally more extensive tax consequences in cases of longer travel. Such tax consequences mainly include payroll tax liabilities related to employee compensation and, in cases envisaged by international tax legislation, taxation of profits generated by employees during their time of travel.
We have internal procedures, policies and systems, including an internal mobility program, for monitoring our tax liabilities arising in connection with the business travel. However, considering that the tax authorities worldwide are paying closer attention to global mobility issues, our operations may be adversely affected by additional tax charges related to the activity of our mobile employees.
Loss of taxation benefits related to our employment-related taxes that are enjoyed in Russia could have a negative impact on our operating results and profitability.
The Russian government provides qualified Russian IT companies with substantial tax benefits through a reduced social contribution charge rate program. This program resulted in savings for us of approximately $1.8 million in the fiscal year ended December 31, 2020 and approximately $2.3 million in the fiscal year ended December 31, 2019. However, the reduced tax rates for social contributions (16% in total) are a temporary measure. In 2016, application of reduced rates was prolonged until 2023, after which the Russian government may take the decision to gradually increase the tax rates. If the Russian government were to change its favorable treatment of Russian IT companies by modifying or repealing its current favorable tax measures, or if we become ineligible for such favorable treatment, it would significantly impact our financial condition and results of operations.
Tax authorities may disagree with our positions and conclusions regarding certain tax positions, or may apply existing rules in an arbitrary or unforeseen manner, resulting in unanticipated costs, taxes or non-realization of expected benefits.
A tax authority may disagree with tax positions that we have taken, which could result in increased tax liabilities. For example, a tax authority could challenge our allocation of income by tax jurisdiction and the amounts paid between our affiliated companies pursuant to our intercompany arrangements and transfer pricing policies, including methodologies for valuing developed technology and amounts paid with respect to our intellectual property development.
A tax authority may take the position that material income tax liabilities, interest and penalties are payable by us, where there has been a technical violation of contradictory laws and regulations that are relatively new and have not been subject to extensive review or interpretation, in which case we expect that we might contest such assessment. High-profile companies can be particularly vulnerable to aggressive application of unclear requirements. Many companies must negotiate their tax bills with tax inspectors who may demand higher taxes than applicable law appears to provide. Contesting such an assessment may be
48

lengthy and costly and if we were unsuccessful in disputing the assessment, the implications could increase our anticipated effective tax rate, where applicable.
Our business, financial condition and results of operations may be adversely affected by fluctuations in foreign currency exchange rates.
Grid Dynamics is exposed to foreign currency exchange rate risk and its profit margins are subject to volatility between periods due to changes in foreign currency exchange rates relative to the U.S. dollar. Grid Dynamics’ functional currency apart from the U.S. dollar includes EURO, British pounds, Mexican pesos and Moldovan Leu. We are exposed to foreign currency exchange transaction risk related to funding our non-U.S. operations and to foreign currency translation risk related to certain of our subsidiaries’ cash balances that are denominated in currencies other than the U.S. dollar as we do not currently hedge our foreign currency exposure. In addition, our profit margins are subject to volatility as a result of changes in foreign exchange rates. In the three and nine months ended September 30, 2021, approximately 23.5%, 12.0% and 5.8% of Grid Dynamics’ $56.0 million and approximately 24.6%, 11.6% and 6.9% of Grid Dynamics’ $143.2 million of combined cost of revenue and total operating expenses were denominated in the Ukrainian hryvnia, Russian ruble, and Polish zloty, respectively. Comparatively, the same foreign currencies accounted for approximately 10.6%, 11.8% and 9.8% of Grid Dynamics’ $28.0 million and 10.7%, 14.5%, and 10.0% of Grid Dynamics’ $93.0 million of combined cost of revenue and total operating expenses in the three and nine months ended September 30, 2020. Any significant fluctuations in currency exchange rates may have a material impact on our business and results of operations. In some countries, we may be subject to regulatory or practical restrictions on the movement of cash and the exchange of foreign currencies, which would limit our ability to use cash across our global operations and increase our exposure to currency fluctuations. This risk could increase as we continue expanding our global operations, which may include entering emerging markets that may be more likely to impose these types of restrictions. Currency exchange volatility caused by political or economic instability or other factors, could also materially impact our results. See the section titled, “Quantitative and Qualitative Disclosures about Market Risk—Foreign Currency Exchange Rate Risk” in our most recent annual report on Form 10-K and this quarterly report on Form 10-Q for more information about our exposure to foreign currency exchange rates.
We may be exposed to liability for actions taken by its subsidiaries.
In certain cases, we may be jointly and severally liable for losses of our subsidiaries. Irrespective of incurring liability for losses of our subsidiaries, we may incur secondary liability and, in certain cases, liability to creditors for obligations of our subsidiaries in certain instances involving bankruptcy or insolvency.
In particular, under Article 53, Part 1 of the Russian Civil Code, a “controlling person” of a legal entity may be held directly liable for losses that the entity suffers because of his or her “fault,” and any agreement that seeks to limit or waive such liability will not be valid. Generally, a controlling person is anyone who holds the power to determine the entity’s actions, including the right to direct the actions of officers or executives. When a controlling person causes losses, officers and executives may all be held jointly and severally liable (a parent entity may also be held jointly liable with a subsidiary for actions directed by the parent or made with its consent). Liability may also apply to stockholders or controlling persons when the company is a foreign legal entity but conducts its business primarily in Russia.
Further, an effective parent is secondarily liable for an effective subsidiary’s debts if the effective subsidiary becomes insolvent or bankrupt as a result of the action or inaction of the effective parent. Compensation for the effective subsidiary’s losses from the effective parent that caused the effective subsidiary to take action or fail to take action, knowing that such action or failure to take action would result in losses, may be claimed, inter alia, by the other stockholders of the effective subsidiary, the administrators and creditors in an insolvency proceeding. We could be found to be the effective parent of the subsidiaries, in which case we could become liable for their debts, which could have a material adverse effect on our business, financial condition and results of operations or prospects.
Our profitability may suffer if we are unable to maintain our resource utilization and productivity levels.
As most of our client projects are performed and invoiced on a time and materials basis, our management tracks and projects billable hours as an indicator of business volume and corresponding resource needs for IT professionals. To maintain our gross profit margins, we must effectively utilize our IT professionals, which depends on our ability to:
integrate and train new personnel;
efficiently transition personnel from completed projects to new assignments;
forecast customer demand for services; and
49

deploy personnel with appropriate skills and seniority to projects.
If we experience a slowdown or stoppage of work for any client, or on any project for which we have dedicated personnel or facilities, including any adverse impacts from the COVID-19 pandemic, which occurred in the second quarter, and to a lesser extent, in the third quarter of 2020, we may be unable to reallocate these personnel or assets to other clients and projects to keep their utilization and productivity levels high. If we are unable to maintain appropriate resource utilization levels, our profitability may suffer.
If we are unable to accurately estimate the cost of service or fail to maintain favorable pricing for our services, our contracts may be unprofitable.
While fixed-fee contracts currently represent an small portion of overall revenue for the periods presented, Grid Dynamics expects proportionate revenue from fixed-fee contracts to increase in future periods. In order for our contracts to be profitable, we must be able to accurately estimate our costs to provide the services required by the applicable contract and appropriately price our contracts. Such estimates and pricing structures used by us for our contracts are highly dependent on internal forecasts, assumptions and predictions about our projects, the marketplace, global economic conditions (including foreign exchange volatility) and the coordination of operations and personnel in multiple locations with different skill sets and competencies. Due to the inherent uncertainties that are beyond our control, we may underprice our projects, fail to accurately estimate the costs of performing the work or fail to accurately assess the risks associated with potential contracts. In select cases, we also offer volume discounts once a client reaches certain contractual spend thresholds, which may lower the reference price for a client or result in a loss of profits if we do not accurately estimate the amount of discounts to be provided. We may not be able to recognize revenues from fixed-fee contracts in the period in which our services are performed, which may cause our margins to fluctuate. Any increased or unexpected costs, delays or failures to achieve anticipated cost savings, or unexpected risks we encounter in connection with the performance of our contracts, including those caused by factors outside our control, could make these contracts less profitable or unprofitable.
We face risks associated with the long selling and implementation cycle for our services that require significant resource commitments prior to realizing revenues for those services.
We have a long selling cycle for our services, which requires us to expend substantial time and resources to educate clients on the value of our services and our ability to meet their requirements. In certain cases, we may begin work and incur costs prior to executing a contract. Our selling cycle is subject to many risks and delays over which we have little or no control, including clients’ decisions to choose alternatives to our services (such as other IT services providers or in-house resources) and the timing of clients’ budget cycles and approval processes. Therefore, selling cycles for new clients can be especially unpredictable and we may fail to close sales with prospective clients to whom we have devoted significant time and resources. Any significant failure to generate revenues or delays in recognizing revenues after incurring costs related to sales processes could have a material adverse effect on our business, financial condition and results of operations.
Failure to obtain engagements for and effectively manage increasingly large and complex projects may have an adverse effect on our business, financial condition and results of operations.
Our operating results are dependent on the scale of our projects and the prices we are able to charge for our services. In order to successfully perform larger and more complex projects, we need to establish and maintain effective, close relationships with our clients, continue high levels of client satisfaction and develop a thorough understanding of our clients’ needs. We may also face a number of challenges managing larger and more complex projects, including:
maintaining high quality control and process execution standards;
maintaining planned resource utilization rates on a consistent basis;
using an efficient mix of on-site, off-site and offshore staffing;
maintaining productivity levels;
implementing necessary process improvements;
recruiting and retaining sufficient numbers of highly skilled IT personnel; and
controlling costs.
There is no guarantee that we may be able to overcome such challenges. In addition, large and complex projects may involve multiple engagements or stages, and there is a risk that a client may choose not to retain us for additional stages or may cancel
50

or delay additional planned engagements. Our failure to successfully obtain engagements for and effectively manage large and complex projects may have an adverse effect on our business, financial condition and results of operations.
Increases in compensation expenses, including stock-based compensation expenses, could lower our profitability, and dilute our existing stockholders.
Wages and other compensation costs in the countries in which we maintain significant operations and delivery centers are lower than comparable wage costs in more developed countries. However, wages in the technology industry in these countries may increase at a faster rate than in the past, which may make us less competitive unless we are able to increase the efficiency and productivity of our people. If we increase operations and hiring in more developed economies, our compensation expenses will increase because of the higher wages demanded by technology professionals in those markets. Wage inflation, whether driven by competition for talent or ordinary course pay increases, could increase our cost of services as well as selling, general and administrative expenses and reduce our profitability if we are not able to pass those costs on to our customers or charge premium prices when justified by market demand.
In addition, we have granted certain equity-based awards under our equity incentive plans and expect to continue doing so. For the three months ended September 30, 2021 and 2020, Grid Dynamics recorded $9.1 million and $5.1 million, respectively, of stock-based compensation expense related to the grant of equity-based awards. For the nine months ended September 30, 2021 and 2020, Grid Dynamics recorded $21.5 million and $13.6 million, respectively, of stock-based compensation expense related to the grant of equity-based awards. If we do not grant equity awards, or if we reduce the value of equity awards we grant, we may not be able to attract, hire and retain key personnel. If we grant more equity awards to attract, hire and retain key personnel, the expenses associated with such additional equity awards could materially adversely affect our results of operations. If the anticipated value of these equity awards does not materialize because of volatility or lack of positive performance in our stock price, we may be unable to retain our key personnel or attract and retain new key employees in the future, in which case our business may be severely disrupted our ability to attract and retain personnel could be adversely affected. The issuance of equity-based compensation may also result in dilution to stockholders.
Failure to collect receivables from, or bill for unbilled services to, clients may have a material adverse effect on our results of operations and cash flows.
Our business depends on our ability to successfully obtain payment from our clients of the amounts they owe for work performed. We usually bill and collect such amounts on relatively short cycles and maintain allowances for doubtful accounts. However, actual losses on client balances could differ from those that we anticipate and, as a result, we might need to adjust our allowances.
There is no guarantee that we will accurately assess the creditworthiness of our clients. If clients suffer financial difficulties, it could cause them to delay payments, request modifications to their payment arrangements that could increase our receivables balance, or default on their payment obligations.
In addition, some of our clients may delay payments due to changes in internal payment procedures driven by rules and regulations to which they are subject. Timely collection of client balances also depends on our ability to complete our contractual commitments and bill and collect contracted revenues. If we are unable to meet our contractual requirements, we may experience delays in collection of or inability to collect accounts receivable. If this occurs, our financial condition, results of operations and cash flows could be materially adversely affected.
We may need additional capital and failure to raise additional capital on terms favorable to us, or at all, could limit our ability to grow our business and develop or enhance our service offerings to respond to market demand or competitive challenges.
We may require additional cash resources due to changed business conditions or other future developments. If existing resources are insufficient to satisfy cash requirements, we may seek to sell additional equity or debt securities or obtain one or more credit facilities. The sale of additional equity securities could result in dilution to stockholders. The incurrence of indebtedness would result in increased debt service obligations and could require us to agree to operating and financing covenants that would restrict our operations. Our ability to obtain additional capital on acceptable terms is subject to a variety of uncertainties, including investors’ perception of, and demand for, securities of IT services companies, conditions in the capital markets in which we may seek to raise funds, our future results of operations and financial condition, and general economic and political conditions. Financing may not be available in amounts or on terms acceptable to us, or at all, which could limit our ability to grow our business and develop or enhance our service offerings to respond to market demand or competitive challenges.
51

War, terrorism, other acts of violence, or natural or man-made disasters may affect the markets in which we operate, our clients and our service delivery.
Our business may be adversely affected by instability, disruption or destruction in a geographic region in which we operate, regardless of cause, including war, terrorism, riot, civil insurrection or social unrest, and natural or man made disasters, including famine, flood, fire, earthquake, storm or pandemic events and spread of disease, such as the COVID-19 pandemic. Such events may cause clients to delay their decisions on spending for the services provided by us and give rise to sudden significant changes in regional and global economic conditions and cycles. These events also pose significant risks to our personnel and to physical facilities and operations, which could materially adversely affect our financial results.
Acquisitions could be difficult to identify and integrate, divert the attention of management, disrupt our business, dilute stockholder value and adversely affect our financial condition and results of operations, we may not achieve the financial and strategic goals that were contemplated at the time of a transaction, and we may be exposed to claims, liabilities and disputes as a result of the transaction that may adversely impact our business, operating results and financial condition.
We continuously review and consider strategic acquisitions of businesses, products or technologies. We recently acquired Daxx Web Industries B.V., a Netherlands-based software development and technology consulting company, as well as Tacit, a global provider of digital commerce solutions, and we may in the future seek to acquire or invest in other businesses, products or technologies that we believe could complement or expand our services, enhance our technical capabilities or otherwise offer growth opportunities. The pursuit of potential acquisitions may divert the attention of management and cause us to incur various expenses in identifying, investigating and pursuing suitable acquisitions, whether or not the acquisition purchases are completed. Additionally, we may not be able to find and identify desirable acquisition targets or be successful in entering into an agreement with any particular target or obtain adequate financing to complete such acquisitions. If we acquire businesses, we may not be able to successfully integrate the acquired personnel, operations, and technologies, or effectively manage the combined business following the acquisition.
Additionally, we may not be able to find and identify desirable acquisition targets or be successful in entering into an agreement with any particular target or obtain adequate financing to complete such acquisitions. Acquisitions could also result in dilutive issuances of equity securities or the incurrence of debt, which could adversely affect our financial condition, cash flows and results of operations. In addition, if an acquired business fails to meet our expectations, we may not achieve the financial and strategic goals that were contemplated at the time of a transaction, and our business, financial condition and results of operations may be adversely affected. Furthermore, we may acquire businesses that have inferior margins and profitability levels in comparison to our existing business and this may dilute our overall profitability of the company. This, in turn, may result in adverse financial results and dilution to existing stockholders.
Our operating results or financial condition may be adversely impacted by claims or liabilities that we assume from an acquired company or technology or other claims or liabilities otherwise related to an acquisition, including, among others, claims from governmental and regulatory agencies or bodies, terminated employees, current or former customers, current or former stockholders or other third parties, or arising from contingent payments related to the acquisition; pre-existing contractual relationships that we assume from an acquired company that we would not have otherwise entered into, the termination or modification of which may be costly or disruptive to our business; unfavorable revenue recognition or other accounting treatment as a result of an acquired company’s practices; and intellectual property claims or disputes. We may fail to identify or assess the magnitude of certain liabilities, shortcomings or other circumstances prior to acquiring a company or technology, which could result in unexpected litigation or regulatory exposure and other adverse effects on our business, operating results and financial condition.
We face risks associated with the transparency, quality, and reliability of financial information of a business we acquire.
Although we perform due diligence on a targeted business that we intend to acquire, we are exposed to risks associated with the quality and reliability of the financial statements of the acquired business. This risk may be higher with smaller businesses and businesses that are operated in jurisdictions and countries with poorer regulatory and compliance requirements. In such situation where we acquire a target with unreliable financial statements, we are exposed to material risks that may impact the reliability of our overall financial statements and may adversely impact our stock price.
We also cannot assure you that the diligence we conduct when evaluating future acquisitions will reveal all material issues that may be present, that it would be possible to uncover all material issues through a customary amount of due diligence, or that factors outside of our control will not later arise. Even if our due diligence successfully identifies certain risks, unexpected risks may arise and previously known risks may materialize in a manner not consistent with our preliminary risk analysis. Further, as a result of a completed acquisition, purchase accounting, and integration of the acquired business, we may be required to take
52

write-offs or write-downs, restructuring and impairment or other charges that could negatively affect our business, assets, liabilities, prospects, outlook, financial condition and results of operations.
Some of the additional risks associated with acquiring a business include, but not limited to the following:
inability to integrate or benefit from acquired technologies or services;
product synergies, cost reductions, increases in revenue and economies of scale may not materialize as expected;
the business culture of the acquired entity may not match well with our culture;
unforeseen delays, unanticipated costs and liabilities may arise when integrating operations, processes and systems in geographies where we have not conducted business;
unanticipated costs or liabilities associated with the strategic transactions;
incurrence of transaction-related costs;
assumption of the existing obligations or unforeseen liabilities of the acquired business;
difficulty integrating the accounting systems, security infrastructure, operations, and personnel of the acquired business;
difficulties and additional expenses associated with supporting legacy products and hosting infrastructure of the acquired business;
difficulty converting the current and prospective customers of the acquired business onto our platform and contract terms, including disparities in the revenue, licensing, support, or professional services model of the acquired company;
diversion of management’s attention from other business concerns;
adverse effects to our existing business relationships with business partners and customers as a result of the strategic transactions;
unexpected costs may arise due to unforeseen changes in tax, payroll, pension, labor, trade, environmental and safety policies in new jurisdictions where the acquired entity operates;
difficulty in retaining, motivating and integrating key management and other employees of the acquired business;
use of resources that are needed in other parts of our business;
dispute over contingent payments; and
use of substantial portions of our available cash to consummate the strategic transaction.
We are an emerging growth company within the meaning of the Securities Act, and if we take advantage of certain exemptions from disclosure requirements available to emerging growth companies, this could make our securities less attractive to investors and may make it more difficult to compare our performance with other public companies.
We are an “emerging growth company” within the meaning of the Securities Act, as modified by the JOBS Act, and we may take advantage of certain exemptions from various reporting requirements that are applicable to other public companies that are not emerging growth companies including, but not limited to, not being required to comply with the auditor attestation requirements of Section 404 of the Sarbanes-Oxley Act, reduced disclosure obligations regarding executive compensation in our periodic reports and proxy statements, and exemptions from the requirements of holding a nonbinding advisory vote on executive compensation and stockholder approval of any golden parachute payments not previously approved. As a result, our stockholders may not have access to certain information they may deem important. We could be an emerging growth company for the first five years after the completion of our initial public offering, although circumstances could cause us to lose that status earlier, including if the market value of our ordinary shares held by non-affiliates exceeds $700 million as of any June 30 before that time, in which case we would no longer be an emerging growth company as of the following December 31. We cannot predict whether investors will find our securities less attractive because we will rely on these exemptions. If some investors find our securities less attractive as a result of our reliance on these exemptions, the market prices of our securities may be lower than they otherwise would be, there may be a less active trading market for our securities and the market prices of our securities may be more volatile.
Further, Section 102(b)(1) of the JOBS Act exempts emerging growth companies from being required to comply with new or revised financial accounting standards until private companies (that is, those that have not had a Securities Act registration statement declared effective or do not have a class of securities registered under the Securities Exchange Act of 1934 (the
53

"Exchange Act") are required to comply with the new or revised financial accounting standards. The JOBS Act provides that a company can elect to opt out of the extended transition period and comply with the requirements that apply to non-emerging growth companies but any such an election to opt out is irrevocable. We have elected not to opt out of such extended transition period, which means that when a standard is issued or revised and it has different application dates for public or private companies, we, as an emerging growth company, can adopt the new or revised standard at the time private companies adopt the new or revised standard. This may make comparison of our financial statements with certain other public companies difficult or impossible because of the potential differences in accounting standards used.
Changes in financial accounting standards or practices may cause adverse, unexpected financial reporting fluctuations and affect our reported results of operations.
Generally accepted accounting principles in the U.S. are subject to interpretation by the Financial Accounting Standards Board (“FASB”), the SEC and various bodies formed to promulgate and interpret appropriate accounting principles. A change in accounting standards or practices can have a significant effect on our reported results and may even affect our reporting of transactions completed before the change is effective. New accounting pronouncements and varying interpretations of accounting pronouncements have occurred and may occur in the future. Changes to existing rules or the questioning of current practices may adversely affect our reported financial results or the way we conduct our business.
For example, on April 12, 2021, the Staff of the SEC issued the “Staff Statement on Accounting and Reporting Considerations for Warrants Issued by Special Purpose Acquisition Companies (“SPACs”)” (the “Staff Statement”). The Staff Statement provided new guidance for all SPAC-related companies regarding the accounting and reporting for their warrants that could result in the warrants issued by SPACs being classified as a liability measured at fair value, with non-cash fair value adjustments reported in earnings at each reporting period. We reviewed the accounting for both our public warrants and private warrants following the Staff Statement. We determined that the accounting for our public warrants as equity was consistent with the Staff Statement. We determined that our private warrants should be accounted for as liabilities but that the related accounting errors during the year ended December 31, 2020 were not material to the required financial statements and disclosures included in our annual report on Form 10-K filed on March 5, 2021. In the three months ended March 31, 2021, we began accounting for the private warrants correctly, as disclosed in Note 8 in our quarterly report on Form 10-Q filed on May 6, 2021. As of September 30, 2021, we have zero public warrants or private warrants outstanding.
Reports published by analysts, including projections in those reports that differ from our actual results, could adversely affect the price and trading volume of our common stock.
Securities research analysts may establish and publish their own periodic projections for us. These projections may vary widely and may not accurately predict the results we actually achieve. Our share price may decline if our actual results do not match the projections of these securities research analysts. Similarly, if one or more of the analysts who write reports on us downgrades our stock or publishes inaccurate or unfavorable research about our business, our share price could decline. If one or more of these analysts ceases coverage of us or fails to publish reports on us regularly, our share price or trading volume could decline and demand for our shares could decrease.
Risks Related to Government Regulations
Failure to comply with privacy and data protection laws and regulations could lead to government enforcement actions, private litigation and adverse publicity.
We receive, store and process personal information and other data from and about customers in addition to our employees and contractors. Our handling of data is subject to a variety of laws and regulations, including regulation by various government agencies and various state, local and foreign agencies. Our data handling also is subject to contractual obligations and may be deemed to be subject to industry standards, including certain industry standards that we undertake to comply with. The laws and regulations relating to privacy and data security are evolving, can be subject to significant change and may result in ever-increasing regulatory and public scrutiny and escalating levels of enforcement and sanctions.
For example, the European Union has implemented the General Data Protection Regulation (“GDPR”), which came into effect on May 25, 2018. The GDPR has a significant impact on how businesses can collect and process the personal data of individuals in the European Economic Area (“EEA”). The regulation includes stringent operational requirements for processors and controllers of personal data and imposes significant penalties for non-compliance of up to the greater of €20 million or 4% of global annual revenues. With regard to transfers to the U.S. of personal data from our employees and European customers and users, we rely upon standard contractual clauses approved by the European Commission (the “SCCs”). The SCCs have been subject to legal challenge and may be modified or invalidated, and we may be unsuccessful in maintaining legitimate means for the transfer and receipt of personal data from the EEA. We are in the process of assessing the “Schrems II” decision
54

issued by the Court of Justice of the European Union (the “CJEU”) on July 16, 2020, and its impact on our data transfer mechanisms. In the Schrems II decision, the CJEU deemed the SCCs valid, but ruled that transfers made pursuant to the SCCs and other alternative transfer mechanisms must be analyzed on a case-by-case basis to ensure EU standards of data protection are met in the jurisdiction where the data importer is based.  Subsequent guidance from EU regulators has stated that in certain cases, the SCCs must be accompanied by the use of supplementary measures. Concerns remain about the potential for the SCCs and other mechanisms to face additional challenges. We may, in addition to other impacts of the Schrems II decision and other developments relating to cross-border transfer, experience additional costs associated with increased compliance burdens, and we and our customers face the potential for regulators in the EEA to apply different standards to the transfer of personal data from the EEA to the U.S., and to block, or require ad hoc verification of measures taken with respect to, certain data flows from the EEA to the U.S. We also may be required to engage in new contract negotiations with third parties that aid in processing data on our behalf. We may experience reluctance or refusal by current or prospective European customers to use our products, and may find it necessary or desirable to make further changes to our handling of personal data of EEA residents. The regulatory environment applicable to the handling of EEA residents’ personal data, and our actions taken in response, may cause us to assume additional liabilities or incur additional costs and obligations and could result in our business, operating results and financial condition being harmed. Additionally, we and our customers may face a risk of enforcement actions by data protection authorities in the EEA relating to personal data transfers to and by us from the EEA. Any such enforcement actions could result in substantial costs and diversion of resources, distract management and technical personnel and negatively affect our business, operating results and financial condition.
In addition, California has enacted legislation that has been described as the first “GDPR-like” law in the U.S. The California state legislature passed the California Consumer Privacy Act (“CCPA”) in 2018 and California voters approved a ballot measure subsequently establishing the California Privacy Rights Act (“CPRA”) in 2020, which will jointly regulate the processing of personal information of California residents and increase the privacy and security obligations of entities handling certain personal information of California residents, including requiring covered companies to provide new disclosures to California consumers, and afford such consumers new abilities to opt-out of certain sales of personal information. The CCPA came into effect on January 1, 2020, and the California Attorney General may bring enforcement actions, with penalties for violations of the CCPA. The CPRA will go into effect on January 1, 2023 instilling enforcement authority in a new dedicated regulatory body, the California Privacy Protection Agency, which will begin carrying out enforcement actions as soon as six months after the enactment date. While aspects of both the CCPA and CPRA and their interpretations remain to be determined in practice, we are committed to comply with their obligations. We cannot yet fully predict the impact of the CCPA and CPRA on our business or operations, but developments regarding these and all privacy and data protection laws and regulations around the world may require us to modify our data processing practices and policies and to incur substantial additional costs and expenses in an effort to maintain compliance on an ongoing basis. Other countries and jurisdictions throughout the world are considering or enacting laws and regulations requiring the local storage of data. For example, under Russian law, all data operators collecting personal data of Russian citizens through electronic communications, including the internet, must comply with Russian laws regulating the local storage of such data in databases located in the territory of Russia. This law applies not only to local data controllers but also to data controllers established outside Russia to the extent they gather personal data relating to Russian nationals through websites aimed at the territory of Russia. 
We have been undertaking measures in an effort to comply with the GDPR, CCPA, CPRA and other applicable privacy and data protection laws and regulations, and complying with these laws and regulations may require us to incur substantial operational costs and to require its data handling practices. The costs of compliance with, and other burdens imposed by, such laws, regulations and policies that are applicable to us may limit the use and adoption of our products and solutions, alter the way we conduct business and/or could otherwise have a material adverse impact on our results of operations. For example, we may find it necessary to establish systems to maintain data originated in certain jurisdictions within those jurisdictions, which may involve substantial expense and distraction from other aspects of our business. Further, the costs of compliance with, and other burdens imposed by, such laws, regulations and policies that are applicable to us, may limit the use and adoption of our products and solutions and could have a material adverse impact on our results of operations.
Any failure or perceived failure (including as a result of deficiencies in our policies, procedures or measures relating to privacy, data protection, data security, marketing or client communications) by us to comply with laws, regulations, policies, legal or contractual obligations, industry standards, or regulatory guidance relating to privacy, data protection or data security may result in governmental investigations and enforcement actions, litigation, fines and penalties or adverse publicity and could cause our clients to lose trust in us, which could have a material adverse effect on our reputation, business, financial condition and results of operations.
We expect that there will continue to be new proposed laws, regulations and industry standards relating to privacy, data protection, data security, marketing, consumer communications and information security in the U.S., the European Union, Russia and other jurisdictions, and we cannot determine the impact such future laws, regulations and standards may have on our
55

business. Future laws, regulations, standards and other obligations or any changed interpretation or enforcement of existing laws or regulations could impair our ability to develop and market new services and maintain and grow our client base and increase revenue.
We are subject to laws and regulations restricting our operations, including export restrictions, economic sanctions and the Foreign Corrupt Practices Act and similar anti-corruption laws. If we are not in compliance with applicable legal requirements, we may be subject to civil or criminal penalties and other remedial measures.
Our operations are subject to laws and regulations restricting our operations, including activities involving restricted countries, organizations, entities and persons that have been identified as unlawful actors or that are subject to U.S. sanctions imposed by the Office of Foreign Assets Control (“OFAC”) or other international economic sanctions that prohibit us from engaging in trade or financial transactions with certain countries, businesses, organizations and individuals. We are subject to the Foreign Corrupt Practices Act (“FCPA”), which prohibits U.S. companies and their intermediaries from bribing foreign officials for the purpose of obtaining or keeping business or otherwise obtaining favorable treatment, and other laws concerning our international operations. The FCPA’s foreign counterparts contain similar prohibitions, although varying in both scope and jurisdiction. We operate in many parts of the world that have experienced governmental corruption to some degree, and, in certain circumstances, strict compliance with anti-bribery laws may conflict with local customs and practices.
We are currently in the process of developing and implementing formal controls and procedures to ensure that we are in compliance with the FCPA, OFAC sanctions, and similar sanctions, laws and regulations. The implementation of such procedures may be time consuming and expensive and could result in the discovery of issues or violations with respect to the foregoing by us or our employees, independent contractors, subcontractors or agents of which we were previously unaware.
If we are not completely effective in ensuring our compliance with all such applicable laws, it could result in us being subject to criminal and civil penalties, disgorgement and other sanctions and remedial measures, and legal expenses. Likewise, any investigation of any potential violations of such laws by the U.S. or other jurisdictions could also have an adverse impact on our reputation, business, financial condition and results of operations.
Changes to the U.S. administration’s fiscal, political, regulatory and other policies may adversely affect our business, financial condition and results of operations.
Recent events, including new policy introductions following the 2020 U.S presidential election, may result in substantial regulatory uncertainty regarding international trade and trade policy. U.S. policies have called for substantial changes to trade agreements, have increased tariffs on certain goods imported into the U.S. and have raised the possibility of imposing significant, additional tariff increases. In the past, unilateral tariffs on imported products by the U.S. have triggered retaliatory actions from certain foreign governments, including China and Russia, and may trigger retaliatory actions by other foreign governments, potentially resulting in a “trade war.” While we cannot predict the extent to which the U.S. or other countries will impose quotas, duties, tariffs, taxes or other similar restrictions upon the import or export of our products in the future, a “trade war” of this nature or other governmental action related to tariffs or international trade agreements could have an adverse impact on demand for our services, sales and clients and affect the economies of the U.S. and various countries, having an adverse effect on our business, financial condition and results of operations.
In addition, regulatory, judicial or other developments regarding SPACs or companies, such as us, that have merged with a SPAC, could have an adverse effect on us. For example, the SEC has recently issued several statements regarding regulatory matters involving SPACS, and there can be no assurances that future statements would not have an adverse effect on our business, financial condition and results of operations.
Negative publicity about offshore outsourcing or anti-outsourcing legislation and restriction on immigration may have an adverse effect on our business.
The issue of companies outsourcing services to organizations operating in other countries is a topic of political discussion in many countries, including the U.S., which is our largest source of revenues. Many organizations and public figures in the U.S. and Europe have publicly expressed concern about a perceived association between offshore outsourcing IT services providers and the loss of jobs in their home countries. For example, measures aimed at limiting or restricting outsourcing by U.S. companies are periodically considered in Congress and in numerous state legislatures to address concerns over the perceived association between offshore outsourcing and the loss of jobs in the U.S. A number of U.S. states have passed legislation that restricts state government entities from outsourcing certain work to offshore IT services providers. Given the ongoing debate over this issue, the introduction and consideration of other restrictive legislation is possible. If enacted, such measures may broaden restrictions on outsourcing by federal and state government agencies and on government contracts with firms that
56

outsource services directly or indirectly, impact private industry with measures such as tax disincentives or intellectual property transfer restrictions, and/or restrict the use of certain business visas. In addition, current or prospective clients may be discouraged from transferring services to providers that utilize offshore delivery centers such as us to avoid any negative perceptions that may be associated with using an offshore provider or for data privacy and security concerns. As a result, our ability to service our clients could be impaired and we may not be able to compete effectively with competitors that operate primarily from within the countries in which our clients operate. Any such slowdown or reversal of the existing industry trends toward offshore outsourcing may have a material adverse effect on our business, financial condition and results of operations.
Some of our projects may involve our personnel obtaining visas to travel and work at customer sites outside of our personnel’s home countries and often in the United States. Our reliance on visas to staff projects with employees who are not citizens of the country where the work is to be performed makes us vulnerable to legislative and administrative changes in the number of visas to be issued in any particular year and other work permit laws and regulations. The process to obtain the required visas and work permits can be lengthy and difficult and variations due to political forces and economic conditions in the number of permitted applications, as well as application and enforcement processes, may cause delays or rejections when trying to obtain visas. Delays in obtaining visas may result in delays in the ability of our personnel to travel to meet with and provide services to our customers or to continue to provide services on a timely basis. In addition, the availability of a sufficient number of visas without significant additional costs could limit our ability to provide services to our customers on a timely and cost-effective basis or manage our sales and delivery centers as efficiently as we otherwise could. Delays in or the unavailability of visas and work permits could have a material adverse effect on our business, results of operations, financial condition and cash flows.
Our subsidiaries in CEE can be forced into liquidation on the basis of formal noncompliance with certain legal requirements.
We operate in CEE primarily through locally organized subsidiaries. Certain provisions of local laws may allow a court to order liquidation of a locally organized legal entity on the basis of its formal noncompliance with certain requirements during formation, reorganization or during its operations. If a company fails to comply with certain requirements including those relating to minimum net assets, governmental or local authorities can seek the involuntary liquidation of such company in court, and the company’s creditors will have the right to accelerate their claims or demand early performance of the company’s obligations as well as demand compensation for any damages. If involuntary liquidation of any of our subsidiaries were to occur, such liquidation could materially adversely affect our business, financial condition and results of operations.
Risks Associated with Intellectual Property
We may not be able to prevent unauthorized use of our intellectual property and our intellectual property rights may not be adequate to protect our business, financial condition and results of operations.
Our success largely depends on methodologies, practices, tools and technical expertise and other intellectual property that we use in designing, developing, implementing and maintaining our services and solutions. We rely upon a combination of nondisclosure, confidentiality, assignment of invention and other contractual arrangements as well as trade secret, patent, copyright and trademark laws to protect our intellectual property rights. We may also rely on litigation to enforce our intellectual property rights and contractual rights.
The nondisclosure and confidentiality agreements that we enter into with our employees, independent contractors, vendors and clients in order to protect our proprietary information may not provide meaningful protection against unauthorized use, misappropriation or disclosure for trade secrets, know-how or other proprietary information and there can be no assurance that others will not independently develop the know-how and trade secrets or develop better methods than us. Policing unauthorized use of such proprietary information is difficult and expensive. We may not be able to deter current and former employees, contractors, vendors, clients and other parties from breaching confidentiality agreements and misappropriating proprietary information and it is possible that third parties may copy, reverse engineer, or otherwise obtain and use our information and proprietary technology without authorization or otherwise infringing on our intellectual property rights.
In addition, our current and former employees or contractors could challenge our exclusive rights in the intellectual property they have developed in the course of their employment. In Russia and certain other countries in which we operate, an employer is deemed to own the copyright in works created by its employees during the course, and within the scope, of their employment, provided certain requirements are complied with. The employer may be required to satisfy additional legal requirements in order to make further use and dispose of such works. While we believe that we have complied with all such requirements and have fulfilled all requirements necessary to acquire all rights in intellectual property developed by our contractors and subcontractors, these requirements are often ambiguously defined and enforced.
57

Implementation of intellectual property-related laws in CIS and CEE countries in which we operate has historically been lacking and there is no assurance that we will be able to enforce or defend our rights under our non-disclosure, confidentiality or assignment of invention agreements or that protection of intellectual property rights in such countries will be as effective as that in the U.S. Any litigation relating to our intellectual property may not prove successful and might result in substantial costs and diversion of resources and management attention.
In some cases, litigation may be necessary to enforce our intellectual property rights or to protect our trade secrets. Litigation could be costly, time consuming and distracting to management and could result in the impairment or loss of portions of our intellectual property. Furthermore, our efforts to enforce our intellectual property rights may be met with defenses, counterclaims and countersuits attacking the validity and enforceability of our intellectual property rights and exposing us to significant damages or injunctions. Our inability to protect our intellectual property against unauthorized copying or use, as well as any costly litigation or diversion of our management’s attention and resources, could delay sales or the implementation of our products, impair the functionality of our products, delay introductions of new products, result in our substituting less-advanced or more-costly technologies into our products or harm our reputation. In addition, we may be required to license additional intellectual property from third parties to develop and market new products, and we cannot assure you that we could license that intellectual property on commercially reasonable terms or at all.
Due to the foregoing reasons, we cannot guarantee that we will be successful in maintaining existing or obtaining future intellectual property rights or registrations, be able to detect unauthorized use of our intellectual property and take appropriate steps to enforce and protect our rights, or that any such steps will be successful. We can also neither guarantee that we have taken all necessary steps to enforce our intellectual property rights in each jurisdiction in which we operate nor that the intellectual property laws of any jurisdiction in which we operate are adequate to protect our interest or that any favorable judgment obtained by us with respect thereto will be enforced in the courts. Unauthorized use by third parties of, or other failure to protect, our intellectual property, including the costs of enforcing intellectual property rights, could have a material adverse effect on our business, financial condition and results of operations.
We may face intellectual property infringement claims that could be time-consuming and costly to defend and failure to defend against such claims may have a material adverse effect on our reputation, business, financial condition and results of operations.
Our success largely depends on our ability to use and develop our technology, tools, code, methodologies and services without infringing the intellectual property rights of third parties, including patents, copyrights, trade secrets and trademarks. We may be subject to litigation involving claims of patent infringement or violation of other intellectual property rights of third parties.
We typically indemnify clients who purchase our services and solutions against potential infringement of intellectual property rights, which subjects us to the risk of indemnification claims. These claims may require us to initiate or defend protracted and costly litigation on behalf of our clients, regardless of the merits of these claims and are often not subject to liability limits or exclusion of consequential, indirect or punitive damages. If any of these claims succeed, we may be forced to pay damages on behalf of our clients, redesign or cease offering our allegedly infringing services or solutions or obtain licenses for the intellectual property such services or solutions allegedly infringe. If we cannot obtain all necessary licenses on commercially reasonable terms, our clients may be forced to stop using our services or solutions.
The holders of patents and other intellectual property rights potentially relevant to our service offerings may make it difficult for us to acquire a license on commercially acceptable terms. Also, we may be unaware of intellectual property registrations or applications relating to our services that may give rise to potential infringement claims against us. There may also be technologies licensed to and relied on by us that are subject to infringement or other corresponding allegations or claims by third parties which may damage our ability to rely on such technologies.
Parties making infringement claims may be able to obtain an injunction to prevent us from delivering our services or using technology involving the allegedly infringing intellectual property. Intellectual property litigation is expensive and time-consuming and could divert management’s attention from our business. A successful infringement claim against us, whether with or without merit, could, among other things, require us to pay substantial damages, develop non-infringing technology, or rebrand our name or enter into royalty or license agreements that may not be available on acceptable terms, if at all, and would require us to cease making, licensing or using products that have infringed a third party’s intellectual property rights. Protracted litigation could also result in existing or prospective clients deferring or limiting their purchase or use of our software product development services or solutions until resolution of such litigation or could require us to indemnify our clients against infringement claims in certain instances. Any intellectual property claims or litigation in this area, whether or not we ultimately win or lose, could damage our reputation and materially adversely affect our business, financial condition and results of operations. 
58

Our use of open source software may lead to possible litigation, negatively affect sales and create liability.
We often incorporate software licensed by third parties under so-called “open source” licenses, which may expose us to liability and have a material impact on our software development services. Use of open source software may entail greater risks than use of third-party commercial software, as open source licensors generally do not provide support, warranties, indemnification, or other contractual protections regarding infringement claims or the quality of the code. In addition, the public availability of such software may make it easier for others to compromise our services. Although we monitor our use of open source software in an effort both to comply with the terms of the applicable open source licenses and to avoid subjecting our client deliverables to conditions we do not intend, the terms of many open source licenses have not been interpreted by courts in relevant jurisdictions, and there is a risk that these licenses could be construed in a way that could impose unanticipated conditions or restrictions on our clients’ ability to use the software that we develop for them and operate their businesses as they intend. Moreover, we cannot assure you that our processes for controlling our use of open source software in our products will be effective. From time to time, there have been claims challenging the ownership of open source software against companies that incorporate it into their products.
Therefore, there is a possibility that our clients could be subject to actions by third parties claiming that what we believe to be licensed open source software infringes such third parties’ intellectual property rights, and we would generally be required to indemnify our clients against such claims. In addition, in the event that portions of client deliverables are determined to be subject to an open source license, we or our clients could be required to publicly release the affected portions of source code or re-engineer all, or a portion of, the applicable software. Disclosing our proprietary source code could allow our clients’ competitors to create similar products with lower development effort and time and ultimately could result in a loss of sales for our clients. Furthermore, if the license terms for the open source code change, we may be forced to re-engineer our software or incur additional costs. Any of these events could create liability for us to our clients and damage our reputation, which could have a material adverse effect on our business, financial condition and results of operations.
Risks Related to Our Securities
Our bylaws provide that the Court of Chancery of the State of Delaware (or, if the Court of Chancery does not have jurisdiction, another State court in Delaware or the federal district court for the District of Delaware) shall, to the fullest extent permitted by law, be the sole and exclusive forum for substantially all disputes between us and our stockholders (other than claims arising under federal securities laws, including the Securities Act or the Exchange Act and any successors thereto), which could limit our stockholders’ ability to obtain a favorable judicial forum for disputes with us or our directors, officers or employees.
Our bylaws provide that the Court of Chancery of the State of Delaware (or, if the Court of Chancery does not have jurisdiction, another State court in Delaware or the federal district court for the District of Delaware) shall, to the fullest extent permitted by law, be the sole and exclusive forum for the following (except for any claim as to which such court determines that there is an indispensable party not subject to the jurisdiction of such court (and the indispensable party does not consent to the personal jurisdiction of such court within 10 days following such determination), which is vested in the exclusive jurisdiction of a court or forum other than such court or for which such court does not have subject matter jurisdiction):
any derivative action or proceeding brought on our behalf;
any action asserting a claim of breach of a fiduciary duty owed by, or otherwise wrongdoing by, any of our directors, officers or other employees to us or our stockholders;
any action arising pursuant to any provision of the Delaware General Corporation Law (the “DGCL”), our certificate of incorporation or bylaws;
any action to interpret, apply, enforce or determine the validity of our certificate of incorporation or bylaws; and
any other action asserting a claim that is governed by the internal affairs doctrine.
However, notwithstanding the exclusive forum provisions, our bylaws explicitly state that they would not preclude the filing of claims brought to enforce any liability or duty created under federal securities laws, including the Exchange Act or Securities Act.
Our amended and restated bylaws also provide that, unless we consent in writing to the selection of an alternative forum, the federal district courts of the United States shall be the sole and exclusive forum for any action asserting a claim arising pursuant
59

to the Securities Act, such a provision known as a “Federal Forum Provision.” Any person or entity purchasing or otherwise acquiring any interest in our shares of capital stock shall be deemed to have notice of and consented to these provisions.
These exclusive forum provisions may limit a stockholder’s ability to bring a claim in a judicial forum that it finds favorable for disputes with us or our directors, officers or other employees, which may discourage lawsuits against us and our directors, officers and other employees. Additionally, a court could determine that the exclusive forum provision is unenforceable. If a court were to find the exclusive forum provision in our bylaws to be inapplicable or unenforceable in an action, we may incur additional costs associated with resolving the dispute in other jurisdictions, which could seriously harm our business.
The price of our common stock may be volatile.
The price of our common stock may fluctuate due to a variety of factors, including:
our ability to effectively service any current and future outstanding debt obligations;
the announcement the introduction of new products or services, or enhancements thereto, by us or our competitors;
developments concerning intellectual property rights;
changes in legal, regulatory and enforcement frameworks impacting our products;
variations in our and our competitors’ results of operations;
the addition or departure of key personnel;
announcements by us or our competitors of acquisitions, investments or strategic alliances;
actual or perceived data security incidents or breaches;
actual or anticipated fluctuations in our quarterly and annual results and those of other public companies in our industry;
the failure of securities analysts to publish research about us, or shortfalls in our results of operations compared to levels forecast by securities analysts;
any delisting of our common stock from NASDAQ due to any failure to meet listing requirements;
adverse developments from litigation; and
the general state of the securities market.
These market and industry factors may materially reduce the market price of our common stock, regardless of our operating performance.
As of September 30, 2021, over twenty percent of our outstanding common stock was held by our executive officers and directors, or by stockholders controlled by our executive officers or directors. The concentration of ownership provides such persons with substantial control over us, which could limit your ability to influence the outcome of key transactions, including a change of control, and future resales of our common stock held by such persons may cause the market price of our common stock to drop significantly.
As a result, such persons, acting together, have significant influence over all matters that require approval by our stockholders, including the election of directors and approval of significant corporate transactions. Corporate action might be taken even if other stockholders oppose them. This concentration of ownership might also have the effect of delaying or preventing a change of control of our company that other stockholders may view as beneficial.
To the extent that such persons purchase additional shares of ours, the percentage of shares that will be held by them will increase, decreasing the percentage of shares that are held by public stockholders.
If any significant stockholder sells large amounts of our common stock in the open market or in privately negotiated transactions, or if warrant holders exercise their warrant and sell the shares acquired upon exercise, this could have the effect of
60

increasing the volatility in the price of our common stock or putting significant downward pressure on the price of our common stock.
We do not currently intend to pay dividends on our common stock and, consequently, your ability to achieve a return on your investment will depend on appreciation in the price of our common stock.
We have not paid any cash dividends on our common stock since our merger with ChaSerg. The payment of any cash dividends will be dependent upon our revenue, earnings and financial condition from time to time. The payment of any dividends will be within the discretion of our board of directors. It is presently expected that we will retain all earnings for use in our business operations and, accordingly, it is not expected that our board of directors will declare any dividends in the foreseeable future. Our ability to declare dividends may be limited by the terms of any financing and/or other agreements entered into by us or our subsidiaries from time to time and by requirements under the laws of our subsidiaries’ respective jurisdictions of incorporation to set aside a portion of their net income in each year to legal reserves. Therefore, you are not likely to receive any dividends on your common stock for the foreseeable future and the success of an investment in shares of our common stock will depend upon any future appreciation in its value. Consequently, investors may need to sell all or part of their holdings of our common stock after price appreciation, which may never occur, as the only way to realize any future gains on their investment. There is no guarantee that shares of our common stock will appreciate in value or even maintain the price at which our stockholders have purchased their shares.
Delaware law and our certificate of incorporation and bylaws contain certain provisions, including anti-takeover provisions, that limit the ability of stockholders to take certain actions and could delay or discourage takeover attempts that stockholders may consider favorable.
Our certificate of incorporation and bylaws, and the DGCL, contain provisions that could have the effect of rendering more difficult, delaying, or preventing an acquisition deemed undesirable by our board of directors and therefore depress the trading price of our common stock. These provisions could also make it difficult for stockholders to take certain actions, including electing directors who are not nominated by the current members of our board of directors or taking other corporate actions, including effecting changes in our management. Among other things, our certificate of incorporation and bylaws include provisions regarding:
a classified board of directors with three-year staggered terms, which could delay the ability of stockholders to change the membership of a majority of our board of directors;
the ability of our board of directors to issue shares of preferred stock, including “blank check” preferred stock, and to determine the price and other terms of those shares, including preferences and voting rights, without stockholder approval, which could be used to significantly dilute the ownership of a hostile acquirer;
the limitation of the liability of, and the indemnification of our directors and officers;
the exclusive right of our board of directors to elect a director to fill a vacancy created by the expansion of the board of directors or the resignation, death or removal of a director, which prevents stockholders from being able to fill vacancies on our board of directors;
the requirement that directors may only be removed from our board of directors for cause;
a prohibition on stockholder action by written consent, which forces stockholder action to be taken at an annual or special meeting of stockholders and could delay the ability of stockholders to force consideration of a stockholder proposal or to take action, including the removal of directors;
the requirement that a special meeting of stockholders may be called only by our board of directors, the chairman of our board of directors, or our chief executive officer, which could delay the ability of stockholders to force consideration of a proposal or to take action, including the removal of directors;
controlling the procedures for the conduct and scheduling of board of directors and stockholder meetings;
the requirement for the affirmative vote of holders of at least a majority of the voting power of all of the then outstanding shares of the voting stock, voting together as a single class, to amend, alter, change or repeal any provision of our certificate of incorporation or our bylaws, which could preclude stockholders from bringing matters before
61

annual or special meetings of stockholders and delay changes in our board of directors and also may inhibit the ability of an acquirer to effect such amendments to facilitate an unsolicited takeover attempt;
the ability of our board of directors to amend the bylaws, which may allow our board of directors to take additional actions to prevent an unsolicited takeover and inhibit the ability of an acquirer to amend the bylaws to facilitate an unsolicited takeover attempt; and
advance notice procedures with which stockholders must comply to nominate candidates to our board of directors or to propose matters to be acted upon at a stockholders’ meeting, which could preclude stockholders from bringing matters before annual or special meetings of stockholders and delay changes in our board of directors and also may discourage or deter a potential acquirer from conducting a solicitation of proxies to elect the acquirer’s own slate of directors or otherwise attempting to obtain control of our company.
These provisions, alone or together, could delay or prevent hostile takeovers and changes in control or changes in our board of directors or management.
In addition, as a Delaware corporation, we are subject to provisions of Delaware law, including Section 203 of the DGCL, which may prohibit certain stockholders holding 15% or more of our outstanding capital stock from engaging in certain business combinations with us for a specified period of time.
Any provision of our certificate of incorporation, bylaws or Delaware law that has the effect of delaying or preventing a change in control could limit the opportunity for our stockholders to receive a premium for their shares of our capital stock and could also affect the price that some investors are willing to pay for our common stock.
Item 2. Unregistered Sales of Equity Securities and Use of Proceeds.
None.
Purchases of Equity Securities
None.
Item 3. Default Upon Senior Securities
None.
Item 4. Mine Safety Disclosures
None.
Item 5. Other Information
None.
62

Item 6. Exhibits.
The exhibits listed in the accompanying Exhibit Index are filed or incorporated by reference as part of this Quarterly Report on Form 10-Q.
EXHIBIT INDEX
Exhibit Number
Description
Incorporated by Reference From FormIncorporated by Reference From Exhibit NumberDate Filed
31.1Filed herewith
31.2Filed herewith
32.1*Furnished herewith
32.2*Furnished herewith
101.INSXBRL Instance Document - the instance document does not appear in the Interactive Data File because its XBRL tags are embedded within the Inline XBRL document.Filed herewith
101.SCHXBRL Taxonomy Extension Schema DocumentFiled herewith
101.CALXBRL Taxonomy Extension Calculation Linkbase DocumentFiled herewith
101.DEFXBRL Taxonomy Extension Definition Linkbase DocumentFiled herewith
101,LABXBRL Taxonomy Extension Label Linkbase DocumentFiled herewith
101.PREXBRL Taxonomy Extension Presentation Linkbase DocumentFiled herewith
104Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)Filed herewith
*    The certifications furnished in Exhibits 32.1 and 32.2 hereto are deemed to accompany this Quarterly Report on Form 10-Q and will not be deemed “filed” for purposes of Section 18 of the Securities Exchange Act of 1934, as amended. Such certifications will not be deemed to be incorporated by reference into any filings under the Securities Act of 1933, as amended, or the Securities Exchange Act of 1934, as amended, except to the extent that the registrant specifically incorporates it by reference.
63

SIGNATURES
Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.
Grid Dynamics Holdings, Inc.
Date: November 4, 2021By:/s/ Leonard Livschitz
Leonard Livschitz
Chief Executive Officer and Director
(Principal Executive Officer)
Date: November 4, 2021By:/s/ Anil Doradla
Anil Doradla
Chief Financial Officer
(Principal Financial and Accounting Officer)

64
EX-31.1 2 gdyn-20210930xex311.htm EX-31.1 Document

Exhibit 31.1
CERTIFICATION OF PRINCIPAL EXECUTIVE OFFICER
PURSUANT TO
SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002
I, Leonard Livschitz, certify that:
1.I have reviewed this quarterly report on Form 10-Q of Grid Dynamics Holdings, Inc.;
2.Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;
3.Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;
4.The registrant’s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:
(a)designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;
(b)designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;
(c)evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and
(d)disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and
5.The registrant’s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions):
(a)all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and
(b)any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.
Date: November 4, 2021By:/s/ Leonard Livschitz
Name:Leonard Livschitz
Title:Chief Executive Officer and Director
(Principal Executive Officer)


EX-31.2 3 gdyn-20210930xex312.htm EX-31.2 Document

Exhibit 31.2
CERTIFICATION OF PRINCIPAL FINANCIAL OFFICER
PURSUANT TO
SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002
I, Anil Doradla, certify that:
1.I have reviewed this quarterly report on Form 10-Q of Grid Dynamics Holdings, Inc.;
2.Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;
3.Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;
4.The registrant’s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:
(a)designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;
(b)designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;
(c)evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and
(d)disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and
5.The registrant’s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions):
(a)all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and
(b)any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.
Date: November 4, 2021By:/s/ Anil Doradla
Name:Anil Doradla
Title:Chief Financial Officer
(Principal Financial and Accounting Officer)


EX-32.1 4 gdyn-20210930xex321.htm EX-32.1 Document

Exhibit 32.1
CERTIFICATION PURSUANT TO
18 U.S.C. SECTION 1350,
AS ADOPTED PURSUANT TO
SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002
I, Leonard Livschitz, Chief Executive Officer of Grid Dynamics Holdings, Inc. (the “Company”), certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that to my knowledge:
(1)The quarterly report on Form 10-Q for the Company for the quarter ended September 30, 2021 (the “Report”) fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and
(2)The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.
Date: November 4, 2021By:/s/ Leonard Livschitz
Name:Leonard Livschitz
Title:Chief Executive Officer and Director
(Principal Executive Officer)


EX-32.2 5 gdyn-20210930xex322.htm EX-32.2 Document

Exhibit 32.2
CERTIFICATION PURSUANT TO
18 U.S.C. SECTION 1350,
AS ADOPTED PURSUANT TO
SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002
I, Anil Doradla, Chief Financial Officer of Grid Dynamics Holdings, Inc. (the “Company”), certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that to my knowledge:
(1)The quarterly report on Form 10-Q for the Company for the quarter ended September 30, 2021 (the “Report”) fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and
(2)The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.
Date: November 4, 2021By:/s/ Anil Doradla
Name:Anil Doradla
Title:Chief Financial Officer
(Principal Financial and Accounting Officer)


EX-101.SCH 6 gdyn-20210930.xsd XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT 0001001 - Document - Cover Page link:presentationLink link:calculationLink link:definitionLink 1001002 - Statement - Unaudited Condensed Consolidated Balance Sheets link:presentationLink link:calculationLink link:definitionLink 1002003 - Statement - Unaudited Condensed Consolidated Balance Sheets (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 1003004 - Statement - Unaudited Condensed Consolidated Statements of Loss and Comprehensive Loss link:presentationLink link:calculationLink link:definitionLink 1004005 - Statement - Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity link:presentationLink link:calculationLink link:definitionLink 1005006 - Statement - Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 1006007 - Statement - Unaudited Condensed Consolidated Statement of Cash Flows link:presentationLink link:calculationLink link:definitionLink 2101101 - Disclosure - Background and nature of operations link:presentationLink link:calculationLink link:definitionLink 2402401 - Disclosure - Background and nature of operations (Details) link:presentationLink link:calculationLink link:definitionLink 2103102 - Disclosure - Basis of presentation and summary of significant accounting policies link:presentationLink link:calculationLink link:definitionLink 2204201 - Disclosure - Basis of presentation and summary of significant accounting policies (Policies) link:presentationLink link:calculationLink link:definitionLink 2305301 - Disclosure - Basis of presentation and summary of significant accounting policies (Tables) link:presentationLink link:calculationLink link:definitionLink 2406402 - Disclosure - Basis of presentation and summary of significant accounting policies - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2407403 - Disclosure - Basis of presentation and summary of significant accounting policies - Schedule of accounts receivable and allowance for doubtful accounts (Details) link:presentationLink link:calculationLink link:definitionLink 2108103 - Disclosure - Business combination link:presentationLink link:calculationLink link:definitionLink 2309302 - Disclosure - Business combination (Tables) link:presentationLink link:calculationLink link:definitionLink 2410404 - Disclosure - Business combination - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 2411405 - Disclosure - Business combination - Schedule of consideration for business combination (Details) link:presentationLink link:calculationLink link:definitionLink 2112104 - Disclosure - Acquisition of Tacit Knowledge Inc. link:presentationLink link:calculationLink link:definitionLink 2313303 - Disclosure - Acquisition of Tacit Knowledge Inc. (Tables) link:presentationLink link:calculationLink link:definitionLink 2414406 - Disclosure - Acquisition of Tacit Knowledge Inc. - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2415407 - Disclosure - Acquisition of Tacit Knowledge Inc. - Assets acquired and liabilities assumed (Details) link:presentationLink link:calculationLink link:definitionLink 2416408 - Disclosure - Acquisition of Tacit Knowledge Inc. - Intangible assets acquired (Details) link:presentationLink link:calculationLink link:definitionLink 2417409 - Disclosure - Acquisition of Tacit Knowledge Inc. - Pro forma information (Details) link:presentationLink link:calculationLink link:definitionLink 2118105 - Disclosure - Property and equipment, net link:presentationLink link:calculationLink link:definitionLink 2319304 - Disclosure - Property and equipment, net (Tables) link:presentationLink link:calculationLink link:definitionLink 2420410 - Disclosure - Property and Equipment, net (Details) link:presentationLink link:calculationLink link:definitionLink 2121106 - Disclosure - Intangible assets, net link:presentationLink link:calculationLink link:definitionLink 2322305 - Disclosure - Intangible assets, net (Tables) link:presentationLink link:calculationLink link:definitionLink 2423411 - Disclosure - Intangible assets, net (Details) link:presentationLink link:calculationLink link:definitionLink 2124107 - Disclosure - Other current liabilities link:presentationLink link:calculationLink link:definitionLink 2325306 - Disclosure - Other current liabilities (Tables) link:presentationLink link:calculationLink link:definitionLink 2426412 - Disclosure - Other current liabilities - Schedule of other current liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 2427413 - Disclosure - Other current liabilities - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2128108 - Disclosure - Income taxes link:presentationLink link:calculationLink link:definitionLink 2429414 - Disclosure - Income taxes (Details) link:presentationLink link:calculationLink link:definitionLink 2130109 - Disclosure - Stockholders' equity link:presentationLink link:calculationLink link:definitionLink 2431415 - Disclosure - Stockholders' equity (Details) link:presentationLink link:calculationLink link:definitionLink 2132110 - Disclosure - Stock-based compensation link:presentationLink link:calculationLink link:definitionLink 2333307 - Disclosure - Stock-based compensation (Tables) link:presentationLink link:calculationLink link:definitionLink 2434416 - Disclosure - Stock-based compensation - 2018 Stock Plan - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2435417 - Disclosure - Stock-based compensation - Schedule of conversion of the vested and unvested options (Details) link:presentationLink link:calculationLink link:definitionLink 2436418 - Disclosure - Stock-based compensation - 2020 Equity Incentive Plan - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2437419 - Disclosure - Stock-based compensation - Schedule of awards available for grant (Details) link:presentationLink link:calculationLink link:definitionLink 2438420 - Disclosure - Stock-based compensation - Stock Options - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2439421 - Disclosure - Stock-based compensation - Schedule of estimated grant using the Black-Scholes (Details) link:presentationLink link:calculationLink link:definitionLink 2440422 - Disclosure - Stock-based compensation - Schedule of option activity (Details) link:presentationLink link:calculationLink link:definitionLink 2441423 - Disclosure - Stock-based compensation - Restricted Stock Units - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2442424 - Disclosure - Stock-based compensation - Schedule of restricted stock unit activity (Details) link:presentationLink link:calculationLink link:definitionLink 2443425 - Disclosure - Stock-based compensation - Performance Stock Units - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2444426 - Disclosure - Stock-based compensation - Schedule of Employee stock-based compensation recognized (Details) link:presentationLink link:calculationLink link:definitionLink 2145111 - Disclosure - Earnings per share link:presentationLink link:calculationLink link:definitionLink 2346308 - Disclosure - Earnings per share (Tables) link:presentationLink link:calculationLink link:definitionLink 2447427 - Disclosure - Earnings per share - Schedule of Computation of Basic and Diluted Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 2448428 - Disclosure - Earnings per share - Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 2149112 - Disclosure - Commitments and contingencies link:presentationLink link:calculationLink link:definitionLink 2150113 - Disclosure - Subsequent events link:presentationLink link:calculationLink link:definitionLink 2451429 - Disclosure - Subsequent events (Details) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 7 gdyn-20210930_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT EX-101.DEF 8 gdyn-20210930_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT EX-101.LAB 9 gdyn-20210930_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT Proceeds from exercise of public warrants Proceeds from Warrant Exercises Follow On Public Offering - Shares From Selling Shareholders Follow On Public Offering - Shares From Selling Shareholders [Member] Follow On Public Offering - Shares From Selling Shareholders Supplemental disclosure of cash flow information: Supplemental Cash Flow Information [Abstract] Tradename Trademarks and Trade Names [Member] Issuance of shares in connection with vested RSUs (in shares) Released (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period Leasehold improvements Leasehold Improvements [Member] Net loss Net income Net loss Net Income (Loss) Attributable to Parent Entity Emerging Growth Company Entity Emerging Growth Company Schedule of business acquisitions, by acquisition Schedule of Business Acquisitions, by Acquisition [Table Text Block] Preferred stock shares, outstanding (in shares) Preferred Stock, Shares Outstanding Accrued compensation and benefits Employee-related Liabilities, Current Accelerated vesting. number of shares (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Accelerated Vesting, Number Equity issuance costs Payments Of Equity Issuance Costs Payments Of Equity Issuance Costs Income Statement Location [Axis] Income Statement Location [Axis] Cash proceeds from trust account ProceedsFromTrust Proceeds from trust. Less: Accumulated amortization Finite-Lived Intangible Assets, Accumulated Amortization Acquisition related costs Business Combination, Acquisition Related Costs Statistical Measurement [Domain] Statistical Measurement [Domain] Entity Address, Address Line One Entity Address, Address Line One Entity Address, Address Line Two Entity Address, Address Line Two Unbilled receivables Increase (Decrease) in Contract with Customer, Asset Entity Filer Category Entity Filer Category Options forfeited (in shares) Options forfeited (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period Options, RSUs, and PSUs forfeited (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Instruments Other Than Options, Forfeitures in Period Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Instruments Other Than Options, Forfeitures in Period Unbilled Receivables Unbilled Receivables [Member] Unbilled Receivables Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table] Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table] Dividend yield Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Dividend Rate Available for grant, beginning balance (in shares) Available for grant, ending balance (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant Net increase in cash and cash equivalents Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect Expected volatility Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Volatility Rate Forfeitures / cancelled in period (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period Document Fiscal Year Focus Document Fiscal Year Focus Exercise price range, lower limit (in dollars per share) Share-based Payment Arrangement, Option, Exercise Price Range, Lower Range Limit Subsequent Event Type [Domain] Subsequent Event Type [Domain] Deferred taxes Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities Antidilutive securities excluded from computation of earnings per share (in shares) Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount Engineering, research, and development Research and Development Expense [Member] Sale of Stock [Axis] Sale of Stock [Axis] Subsequent Events [Abstract] Subsequent Events [Abstract] Prepaid income taxes Prepaid Taxes Pro forma information, earnings of acquiree Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual Business Combination and Asset Acquisition [Abstract] Business Acquisition [Axis] Business Acquisition [Axis] Income Tax Examination [Table] Income Tax Examination [Table] Non-Statutory Stock Options Non Statutory Stock Option ("NSO") [Member] Award Type [Domain] Award Type [Domain] Assets Assets [Abstract] Term Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Disclosures [Abstract] Number of shares exercisable (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number 2017 Acquisition 2017 Acquisition [Member] 2017 Acquisition Non-option awards granted (in shares) Granted (in shares) Granted (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period Options granted, fair value Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Fair Value Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Fair Value Estimated payout percentage Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Estimated Payout Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Estimated Payout Options outstanding (in shares) Options outstanding, beginning balance (in shares) Options outstanding, ending balance (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number Entity Address, City or Town Entity Address, City or Town Tradename Trade Names [Member] Retained earnings Retained Earnings [Member] Prepaid expenses and other current assets Increase (Decrease) in Prepaid Expense and Other Assets Converted vested balance (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Converted and Vested, Number of Shares Share-based Compensation Arrangement by Share-based Payment Award, Options, Converted and Vested, Number of Shares Cash received from ChaSerg Proceeds from Related Party Debt Commitments and contingencies Commitments and Contingencies Disclosure [Text Block] Conversion of convertible units Stock Issued During Period, Value, Conversion of Convertible Securities Other liabilities Other Sundry Liabilities, Current Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table] Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table] Redemption price (in dollars per share) Class of Warrant or Right, Redemption Price Class of Warrant or Right, Redemption Price Related Party [Axis] Related Party [Axis] Accounts receivable Increase (Decrease) in Accounts Receivable Number of common stock shares acquired (in shares) Business Acquisition, Number of Common Stock Shares Acquired Business Acquisition, Number of Common Stock Shares Acquired ChaSerg ChaSerg [Member] ChaSerg Schedule of business acquisition, pro forma information Business Acquisition, Pro Forma Information [Table Text Block] Property, Plant and Equipment [Line Items] Property, Plant and Equipment [Line Items] Vesting percentage Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage Shares withheld (in shares) Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation Commitments and Contingencies Disclosure [Abstract] Commitments and Contingencies Disclosure [Abstract] Entity Interactive Data Current Entity Interactive Data Current Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Other Income (Expense) Other Nonoperating Income (Expense) [Member] Contingent consideration payable Business Combination, Contingent Consideration, Liability, Current Basic (in dollars per share) Earnings Per Share, Basic Outstanding, beginning balance (in shares) Outstanding, ending balance (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number Document Type Document Type Shares Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward] Identified intangible assets Total identified intangible assets Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles Entity Current Reporting Status Entity Current Reporting Status Shares released from escrow (in shares) Business Acquisition Equity Interests Issued Or Issuable Number Of Shares Released From Escrow Business Acquisition Equity Interests Issued Or Issuable Number Of Shares Released From Escrow Tax withholding obligation Share-based Payment Arrangement, Decrease for Tax Withholding Obligation Tactic Knowledge Inc. Tactic Knowledge Inc. [Member] Tactic Knowledge Inc. Number of shares authorized (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized Maximum payout, percentage MaximumPayoutPercentage Consideration transferred Closing merger consideration Business Combination, Consideration Transferred Bad debt Accounts Receivable, Credit Loss Expense (Reversal) Plan Name [Axis] Plan Name [Axis] Cash flows from investing activities Net Cash Provided by (Used in) Investing Activities [Abstract] Document Transition Report Document Transition Report Income Tax Disclosure [Abstract] Income Tax Disclosure [Abstract] Capitalized software development costs Software Development [Member] Finite-Lived Intangible Assets [Line Items] Finite-Lived Intangible Assets [Line Items] Total liabilities and stockholders’ equity Liabilities and Equity One year after the grant date Share-based Payment Arrangement, Tranche One [Member] Options exercised (in dollars per share) Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price Contingent earnout shares expected to vest, threshold trading term Contingent Equity Instruments, Threshold Trading Term Contingent Equity Instruments, Threshold Trading Term Non-compete agreements Noncompete Agreements [Member] Additional paid-in capital Additional Paid in Capital Concentration Risk [Line Items] Concentration Risk [Line Items] Liabilities and equity Liabilities and Equity [Abstract] Warrants redeemed (in shares) Class Of Warrant Or Right, Redemptions Class Of Warrant Or Right, Redemptions Conversion of private warrants Conversion of Warrant, Amount Converted Conversion of Warrant, Amount Converted Accounts payable Increase (Decrease) in Accounts Payable Earnings per share Earnings Per Share [Text Block] Operating expenses Operating Expenses [Abstract] Exercise of stock options Stock Issued During Period, Value, Stock Options Exercised Minimum Minimum [Member] Change in contingent consideration Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability Gross profit Gross Profit Effect of exchange rate changes on cash and cash equivalents Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents Balance Sheet Location [Domain] Balance Sheet Location [Domain] Follow On Public Offering Follow On Public Offering [Member] Follow On Public Offering Number of warrants acquired (in shares) Business Acquisition, Number of Warrants Acquired Business Acquisition, Number of Warrants Acquired Trading Symbol Trading Symbol Percentage of voting interests acquired Business Acquisition, Percentage of Voting Interests Acquired Deferred tax assets Deferred Income Tax Assets, Net United Kingdom UNITED KINGDOM Schedule of property and equipment [Abstract] Schedule of property and equipment [Abstract] Current liabilities Liabilities, Current [Abstract] Schedule of conversion of the vested and unvested options Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable [Table Text Block] Issuance of common stock in July 2021 offering, net of transaction costs of $498 Stock Issued During Period, Value, New Issues Accelerated cost Share-based Payment Arrangement, Accelerated Cost General and administrative General and Administrative Expense Acquisition of Tacit, net of cash acquired (Note 4) Payments to Acquire Businesses, Net of Cash Acquired Revision of Prior Period [Axis] Revision of Prior Period [Axis] Beginning balance (in shares) Ending balance (in shares) Shares, Outstanding Average exercise price of shares exercisable (in dollars per share) Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Exercise Price Stock-based compensation Share-based Payment Arrangement [Text Block] Public Warrant Public Warrant [Member] Public Warrant Accounting Policies [Abstract] Accounting Policies [Abstract] Options outstanding (in years) Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term Issuance of common stock, transaction costs Payments for professional fees related to issuance of common stock from July 2021 Offering Payments of Stock Issuance Costs Issuance of common stock in July 2021 offering, net of transaction costs of $498 (in shares) Stock Issued During Period, Shares, New Issues Common stock, $0.0001 par value; 110,000,000 shares authorized; 65,121,241 and 50,878,780 issued and outstanding as of September 30, 2021 and December 31, 2020, respectively Common Stock, Value, Issued Period for recognition Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition Private Warrant Private Warrant [Member] Private Warrant Customer Concentration Risk Customer Concentration Risk [Member] Basis of presentation Basis of Accounting, Policy [Policy Text Block] Performance stock units Performance Shares [Member] Subsequent Event [Table] Subsequent Event [Table] Accumulated other comprehensive income/(loss) Accumulated Other Comprehensive Income (Loss), Net of Tax Allowance for doubtful accounts Allowance for doubtful accounts Accounts Receivable, Allowance for Credit Loss, Current Business combination Business Combination Disclosure [Text Block] Schedule of estimated grant using the black-scholes Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] Schedule of share-based payment arrangement activity Share-based Payment Arrangement, Activity [Table Text Block] Prepaid income taxes Increase (Decrease) in Prepaid Taxes Antidilutive Securities, Name [Domain] Antidilutive Securities, Name [Domain] Document Period End Date Document Period End Date 2018 Stock Plan Two Thousand Eighteen Stock Plan [Member] Net loss Business Acquisition, Pro Forma Net Income (Loss) Entity Registrant Name Entity Registrant Name Cash and cash equivalents Cash and Cash Equivalents, Policy [Policy Text Block] Schedule of other current liabilities Other Current Liabilities [Table Text Block] Warrants outstanding (in shares) Class of Warrant or Right, Outstanding Sale of stock, consideration received on transaction Sale of Stock, Consideration Received on Transaction Unbilled receivables Unbilled Receivables, Current Conversion of preferred stock Stock Issued During Period, Value, Conversion of Units Prepaid expenses and other current assets Prepaid Expense and Other Assets, Current Total shares transferred at closing (in shares) Business acquisition, number of shares issued (in shares) Business Acquisition, Equity Interest Issued or Issuable, Number of Shares Accrued liabilities Accrued Liabilities, Current Revenue Revenue from Contract with Customer, Excluding Assessed Tax Converted unvested balance (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Converted and Unvested, Number of Shares Share-based Compensation Arrangement by Share-based Payment Award, Options, Converted and Unvested, Number of Shares Stock Options Stock options to purchase common stock Share-based Payment Arrangement, Option [Member] Stock redeemed, price per share (in usd per share) Business Acquisition, Stock Redeemed or Called During Period, Price Per Share Business Acquisition, Stock Redeemed or Called During Period, Price Per Share Change in fair value of warrants Fair Value Adjustment of Warrants Basis of presentation and summary of significant accounting policies (Details) [Table] Basis of presentation and summary of significant accounting policies (Details) [Table] Follow On Public Offering - Shares From Parent Follow On Public Offering - Shares From Parent [Member] Follow On Public Offering - Shares From Parent Common Stock Common Stock [Member] Income/(loss) from operations Operating Income (Loss) Property, Plant and Equipment [Table] Property, Plant and Equipment [Table] Basis of presentation and summary of significant accounting policies Organization, Consolidation and Presentation of Financial Statements Disclosure and Significant Accounting Policies [Text Block] Increase (Decrease) in Stockholders' Equity [Roll Forward] Increase (Decrease) in Stockholders' Equity [Roll Forward] Stockholders' equity (Details) [Table] Stockholders' equity (Details) [Table] Property, Plant and Equipment [Abstract] Property, Plant and Equipment [Abstract] Stock-based compensation Share-based Payment Arrangement, Noncash Expense Additional paid-in capital Additional Paid-in Capital [Member] Cash and cash equivalents Cash and Cash Equivalents, at Carrying Value Pro forma information, revenue of acquiree Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual Previously Reported Previously Reported [Member] Accrued liabilities Increase (Decrease) in Accrued Liabilities Conversion of preferred stock (in shares) Stock Issued During Period, Shares, Conversion of Units Schedule of restricted stock unit activity Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block] Cash paid for income taxes Income Taxes Paid Certain significant risks and uncertainties Certain Significant Risks And Uncertainties [Policy Text Block] Other income/(expenses), net Other Nonoperating Income (Expense) Purchase of property and equipment Payments to Acquire Property, Plant, and Equipment Other current liabilities Total other current liabilities Other Liabilities, Current Earnout Shares Earnout Shares [Member] Earnout Shares Other current liabilities Other Liabilities Disclosure [Text Block] Maximum Maximum [Member] Recapitalized transaction costs Recapitalized Costs, Net Of Transaction Costs Share-based Payment Arrangement [Abstract] Share-based Payment Arrangement [Abstract] Preferred stock, conversion ratio Preferred Stock, Convertible, Conversion Ratio Total liabilities Liabilities Legal Entity [Axis] Legal Entity [Axis] Award Type [Axis] Award Type [Axis] Options granted (in shares) Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price Cash flows from financing activities Net Cash Provided by (Used in) Financing Activities [Abstract] Options outstanding, intrinsic value Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value Total stockholders’ equity Beginning balance Ending balance Stockholders' Equity Attributable to Parent Common stock, shares issued (in shares) Common Stock, Shares, Issued Goodwill and Intangible Assets Disclosure [Abstract] Goodwill and Intangible Assets Disclosure [Abstract] ChaSerg shares recapitalized, net of transaction costs of $4,142 Stock Issued During The Period, Value, Recapitalization Stock Issued During The Period, Value, Recapitalization Intangible assets, net Intangible Assets Disclosure [Text Block] GDI shares redeemed for cash Payments for Repurchase of Common Stock Estimated Useful Life (In Years) Property, Plant and Equipment, Useful Life Price per share (in usd per share) Value per share (in usd per share) Business Acquisition, Share Price Contingent earnout shares expected to vest, trading period Contingent Equity Instruments, Trading Term Contingent Equity Instruments, Trading Term Stockholders’ equity (Note 9) Stockholders' Equity Attributable to Parent [Abstract] Supplemental disclosure of non-cash activities Noncash Investing and Financing Items [Abstract] 2020 Equity Incentive Plan 2020 Equity Incentive Plan [Member] 2020 Equity Incentive Plan Software Software and Software Development Costs [Member] Concentrations of credit risk and significant customers Concentration Risk, Credit Risk, Policy [Policy Text Block] Balance Sheet Location [Axis] Balance Sheet Location [Axis] Purchase price allocation Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net City Area Code City Area Code Retained earnings Retained Earnings (Accumulated Deficit) Options, nonvested, exchange ratio Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Exchange Ratio Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Exchange Ratio Income Tax Examination [Line Items] Income Tax Examination [Line Items] Exercise term Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period Restricted stock units Restricted Stock Units (RSUs) [Member] Stockholders' equity (Details) [Line Items] Stockholders' equity (Details) [Line Items] Conversion of preferred stock to common stock Conversion of Stock, Amount Converted Statement of Stockholders' Equity [Abstract] Statement of Stockholders' Equity [Abstract] Schedule of business acquisition, assets acquired and liabilities assumed Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block] Revision of Prior Period [Domain] Revision of Prior Period [Domain] Business Acquisition [Line Items] Business Acquisition [Line Items] Risk-free interest rate Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Risk Free Interest Rate Subsequent three-month anniversary Share-based Payment Arrangement, Tranche Two [Member] Income Statement [Abstract] Income Statement [Abstract] Amendment Flag Amendment Flag Discrete tax expense Discrete Tax Expense (Benefit) Due To Change In Foreign Tax Law Discrete Tax Expense (Benefit) Due To Change In Foreign Tax Law Schedule of employee stock-based compensation recognized Schedule of Share-based Compensation, Employee Stock Purchase Plan, Activity [Table Text Block] Diluted loss per share (in usd per share) Business Acquisition, Pro Forma Earnings Per Share, Diluted Vesting percentage, contribution margin Share-based Compensation Arrangement by Share-based Payment Award, Contingent Award Vesting Rights, Based On Contribution Margin Benchmark Share-based Compensation Arrangement by Share-based Payment Award, Contingent Award Vesting Rights, Based On Contribution Margin Benchmark Proceeds from exercises of stock options, net of shares withheld for taxes Proceeds from Stock Options Exercised Options forfeited (in dollars per share) Share-based Compensation Arrangements by Share-based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price Finite-Lived Intangible Assets by Major Class [Axis] Finite-Lived Intangible Assets by Major Class [Axis] Provision/(benefit) for income taxes Income tax expense (benefit) Income Tax Expense (Benefit) Accounts receivable, net of allowance of $254 and $418 as of September 30, 2021 and December 31, 2020, respectively Total trade accounts receivable, net Accounts Receivable, after Allowance for Credit Loss, Current Equity Components [Axis] Equity Components [Axis] Earnout shares, nonvested (in shares) Shares options nonvested (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Number of Shares Antidilutive Securities [Axis] Antidilutive Securities [Axis] Total current assets Assets, Current Sales and marketing Selling and Marketing Expense [Member] Sale of Stock [Domain] Sale of Stock [Domain] Concentration Risk Type [Domain] Concentration Risk Type [Domain] Accounts Receivable Accounts Receivable [Member] Forfeited (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period Entity File Number Entity File Number Stock-based compensation expense Share-based Payment Arrangement [Policy Text Block] Statement of Financial Position [Abstract] Statement of Financial Position [Abstract] Unrecognized compensation expense, options Share-based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount Long-Lived Tangible Asset [Domain] Long-Lived Tangible Asset [Domain] Shares transferred at closing (in shares) Business Acquisition, Equity Interest Issued or Issuable, Post Closing Share Adjustment, Excluding Post-Closing Share Adjustment, Number of Shares Business Acquisition, Equity Interest Issued or Issuable, Post Closing Share Adjustment, Excluding Post-Closing Share Adjustment, Number of Shares Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code Entity Small Business Entity Small Business Preferred shares, par value (in dollars per share) Preferred Stock, Par or Stated Value Per Share Unrecognized compensation expense, excluding options Share-based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount Sales Revenue Benchmark [Member] Grant date fair value of common stock (in dollars per share) Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value Equity Component [Domain] Equity Component [Domain] Sales and marketing Selling and Marketing Expense Shares issued upon vesting (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Shares Issued in Period Entity Ex Transition Period Entity Ex Transition Period Cashed out (in shares) Share-based Compensation Arrangement By Share-based Payment, Cash Out Options, Outstanding Total share consideration Business Combination, Consideration Transferred, Equity Interests Issued and Issuable Accrued income taxes Increase (Decrease) in Accrued Taxes Payable Statement [Line Items] Statement [Line Items] Other current liabilities Increase (Decrease) in Other Current Liabilities Current assets (including $2,967 of cash) Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets Vesting percentage, revenue growth Share-based Compensation Arrangement by Share-based Payment Award, Contingent Award Vesting Rights, Based On Revenue Growth Benchmark, Percentage Share-based Compensation Arrangement by Share-based Payment Award, Contingent Award Vesting Rights, Based On Revenue Growth Benchmark Price Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract] Maximum contingent consideration Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High Entity Address, State or Province Entity Address, State or Province Accounts receivable and allowance for doubtful accounts Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block] Income/(loss) before income taxes Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Long-Lived Tangible Asset [Axis] Long-Lived Tangible Asset [Axis] Options, nonvested, outstanding and unexercised (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Outstanding and Unexercised, Number Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Outstanding and Unexercised, Number Entity [Domain] Entity [Domain] Intangible assets useful life Useful Life Estimated Useful Life (In Years) Finite-Lived Intangible Asset, Useful Life Use of estimates Use of Estimates, Policy [Policy Text Block] Schedule of Computation of Basic and Diluted Earnings Per Share Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Options granted (in shares) Options granted (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross Entity Shell Company Entity Shell Company Schedule of Business Acquisitions, by Acquisition [Table] Schedule of Business Acquisitions, by Acquisition [Table] Local Phone Number Local Phone Number Vesting [Axis] Vesting [Axis] ChaSerg shares recapitalized, net of transaction costs of $4,142 (in shares) Stock Issued During The Period, Shares, Recapitalization Stock Issued During The Period, Shares, Recapitalization Proceeds related to issuance of Common Stock from July 2021 Offering Proceeds from Issuance of Common Stock Total assets Assets Adjustment Revision of Prior Period, Adjustment [Member] Plan Name [Domain] Plan Name [Domain] Common stock, shares authorized (in shares) Common Stock, Shares Authorized Geographical [Domain] Geographical [Domain] Engineering, research, and development Research and Development Expense Depreciation and amortization Depreciation, Depletion and Amortization, Nonproduction Schedule of accounts receivable and allowance for doubtful accounts Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block] Cost Of Revenue and Operating Expenses Cost Of Revenue and Operating Expenses [Member] Cost Of Revenue and Operating Expenses Contingent earnout shares expected to vest, exercise price (in dollars per share) Contingent Equity Instruments, Exercise Price Contingent Equity Instruments, Exercise Price Contingent consideration for acquisition of businesses Business Combination, Contingent Consideration, Liability Stock redeemed (in shares) Stock Redeemed or Called During Period, Shares Share-based Compensation Arrangement by Share-based Payment Award [Line Items] Share-based Compensation Arrangement by Share-based Payment Award [Line Items] Customer deposits Contract with Customer, Refund Liability, Current Earnout Shares Three Earnout Shares Three [Member] Earnout Shares Three Net cash provided by operating activities Net Cash Provided by (Used in) Operating Activities Furniture and fixtures Furniture and Fixtures [Member] Entity Tax Identification Number Entity Tax Identification Number Subsequent Event [Line Items] Subsequent Event [Line Items] Estimated future operating results period Estimated Future Operating Results Period, Subsequent To Acquisition Date Estimated Future Operating Results Period, Subsequent To Acquisition Date Geographical [Axis] Geographical [Axis] Basic (in shares) Weighted average number of shares outstanding - basic (in shares) Weighted Average Number of Shares Outstanding, Basic Diluted (in dollars per share) Earnings Per Share, Diluted Due to related parties Due to Related Parties, Current Sale of stock, price per share (in dollars per share) Sale of Stock, Price Per Share Vesting [Domain] Vesting [Domain] Acquisition of Tacit Knowledge Inc. Mergers, Acquisitions and Dispositions Disclosures [Text Block] Intangible assets Intangible Assets, Finite-Lived, Policy [Policy Text Block] Subsequent events Subsequent Events [Text Block] Comprehensive loss Comprehensive Income (Loss), Net of Tax, Attributable to Parent Cost of revenue Cost of Revenue Net cash provided by financing activities Net Cash Provided by (Used in) Financing Activities Warrants exercised (in shares) Class of Warrant or Right, Exercised Class of Warrant or Right, Exercised Deferred tax liabilities Deferred Income Tax Liabilities, Net Conversion of convertible units (in shares) Stock Issued During Period, Shares, Conversion of Convertible Securities Business Acquisition, Acquiree [Domain] Business Acquisition, Acquiree [Domain] Property, plant and equipment Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment Accounts payable Accounts Payable, Current Concentration Risk Type [Axis] Concentration Risk Type [Axis] Accumulated other comprehensive income/(loss) AOCI Attributable to Parent [Member] Convertible preferred stock Convertible Preferred Stock [Member] Common stock, shares outstanding (in shares) Common Stock, Shares, Outstanding Goodwill Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block] Number of reporting units Number of Reporting Units Concentration Risk Benchmark [Domain] Concentration Risk Benchmark [Domain] Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] Shares Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward] Schedule of property and equipment Property, Plant and Equipment [Table Text Block] Income Statement Location [Domain] Income Statement Location [Domain] Exercise price range, upper limit (in dollars per share) Share-based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit Post closing share adjustment (in shares) Less: Post-Closing share adjustment (in shares) Business Acquisition, Equity Interest Issued or Issuable, Post Closing Share Adjustment, Number of Shares Business Acquisition, Equity Interest Issued or Issuable, Post Closing Share Adjustment, Number of Shares Customer relationships Customer Relationships [Member] Number of employees acquired Business Acquisition, Number of Employees Acquired Business Acquisition, Number of Employees Acquired Options, vested, outstanding and unexercised (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Outstanding and Unexercised, Number Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Outstanding and Unexercised, Number Property and equipment, net Property and equipment, net Property, Plant and Equipment, Net Property and equipment, net Property, Plant and Equipment Disclosure [Text Block] Total operating expenses Operating Expenses Unbilled receivables Unbilled Receivables [Policy Text Block] Unbilled Receivables [Policy Text Block]. Additional Paid-In-Capital, Reduction Of Proceeds Additional Paid-In-Capital, Reduction Of Proceeds [Member] Additional Paid-In-Capital, Reduction Of Proceeds Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table] Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table] Loss per share Earnings Per Share [Abstract] Numerator for basic and diluted loss per share NumeratorForBasicAndDilutedLossPerShareAbstract Revenue Business Acquisition, Pro Forma Revenue Options, vested, exchange ratio Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Exchange Ratio Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Exchange Ratio Property and equipment, gross Property, Plant and Equipment, Gross Shares Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Other Than Options, Outstanding [Roll Forward] Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Other Than Options, Outstanding Foreign currency translation adjustments, net of tax Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent Document Quarterly Report Document Quarterly Report Exercise price (in dollars per share) Class of Warrant or Right, Exercise Price of Warrants or Rights Stock options vested (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number Other Current Liabilities Other Current Liabilities [Member] Daxx Daxx Web Industries B.V. ("Daxx") [Member] Daxx Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards Restricted Stock, Value, Shares Issued Net of Tax Withholdings Number of major customers Number Of Major Customers Number of major customers. Warrants to purchase common stock Warrant [Member] Options outstanding, beginning balance (in dollars per share) Option outstanding, ending balance (in dollars per share) Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price Entity Common Stock, Shares Outstanding Entity Common Stock, Shares Outstanding Accrued compensation and benefits Increase (Decrease) in Deferred Compensation Share-based compensation expense Share-based Payment Arrangement, Expense Net income/(loss) per share Earnings Per Share, Basic and Diluted [Abstract] Document Fiscal Period Focus Document Fiscal Period Focus Effective tax rate, percentage Effective Income Tax Rate Reconciliation, Percent Other Liabilities, Current [Abstract] Other Liabilities, Current [Abstract] Total assets acquired Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets Acquired Including Goodwill Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets Acquired Including Goodwill Trade accounts receivable Accounts Receivable, before Allowance for Credit Loss, Current Total liabilities assumed Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Liabilities Earnout Shares One Earnout Shares One [Member] Earnout Shares One Cash and cash equivalents, beginning of period Cash and cash equivalents, end of period Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents Sale of stock, number of shares issued in transaction (in shares) Sale of Stock, Number of Shares Issued in Transaction Common stock, par value (in dollars per share) Common Stock, Par or Stated Value Per Share Current assets Assets, Current [Abstract] Contingent earnout shares expected to vest (in shares) Contingent Equity Instruments, Vesting Number Upon Closing Price Contingent Equity Instruments, Vesting Number Upon Closing Price Intangible assets, gross Finite-Lived Intangible Assets, Gross Entity Central Index Key Entity Central Index Key Schedule of Intangible assets Schedule of Finite-Lived Intangible Assets [Table Text Block] Income taxes Income Tax, Policy [Policy Text Block] Security Exchange Name Security Exchange Name Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards (in shares) Restricted Stock, Shares Issued Net of Shares for Tax Withholdings Revenue recognition Revenue from Contract with Customer [Policy Text Block] Exercise of stock options (in shares) Exercised in period (in shares) Options exercised (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period Traded for taxes (returned to the pool) (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Instruments Other Than Options, Other Increases (Decreases) in Period Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Instruments Other Than Options, Other Increases (Decreases) in Period Diluted (in shares) Weighted average number of shares outstanding - diluted (in shares) Weighted Average Number of Shares Outstanding, Diluted Income taxes Income Tax Disclosure [Text Block] Weighted average shares outstanding Weighted Average Number of Shares Outstanding, Basic [Abstract] Related Party [Domain] Related Party [Domain] GDI GDI [Member] Current Fiscal Year End Date Current Fiscal Year End Date Schedule of option activity Share-based Payment Arrangement, Option, Activity [Table Text Block] Property, Plant and Equipment, Excluding Capitalized Software Costs Property, Plant and Equipment, Excluding Capitalized Software Costs [Member] Property, Plant and Equipment, Excluding Capitalized Software Costs Accounts payable and accrued expenses Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable and Accrued Expenses Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable and Accrued Expenses Stockholders’ equity Stockholders' Equity Note Disclosure [Text Block] Other Liabilities [Line Items] Other Liabilities [Line Items] Other Liabilities Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block] Statement of Cash Flows [Abstract] Statement of Cash Flows [Abstract] Finite-Lived Intangible Assets, Major Class Name [Domain] Finite-Lived Intangible Assets, Major Class Name [Domain] Net cash used in investing activities Net Cash Provided by (Used in) Investing Activities Changes in assets and liabilities: Increase (Decrease) in Operating Capital [Abstract] Less: Accumulated depreciation and amortization Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment Cash flows from operating activities Net Cash Provided by (Used in) Operating Activities [Abstract] General and administrative General and Administrative Expense [Member] Principles of consolidation Consolidation, Policy [Policy Text Block] Expected term in years Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term Total current liabilities Liabilities, Current Payments of tax obligations resulted from net share settlement of vested stock awards Payment, Tax Withholding, Share-based Payment Arrangement Payments to acquire business Plus: Cash transferred to GDI stockholders Payments to Acquire Businesses, Gross Stock-based compensation APIC, Share-based Payment Arrangement, Option, Increase for Cost Recognition Cash and cash equivalents Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents Schedule of business acquisition, finite-lived intangibles Schedule of Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block] Total outstanding shares (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value Entity Address, Postal Zip Code Entity Address, Postal Zip Code Title of 12(b) Security Title of 12(b) Security Earnout Shares Two Earnout Shares Two [Member] Earnout Shares Two Statement [Table] Statement [Table] Exchange ratio Share-based Compensation Arrangement by Share-based Payment Award, Options, Exchange Ratio Share-based Compensation Arrangement by Share-based Payment Award, Options, Exchange Ratio Recently adopted accounting pronouncements and recently issued accounting pronouncements New Accounting Pronouncements, Policy [Policy Text Block] Shares issued subject to earnout provisions (in shares) Business Combination, Contingent Consideration, Shares Issued Subject To Earnout Provisions Business Combination, Contingent Consideration, Earnout Shares Issued Unrecognized stock-based compensation expense Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount Statistical Measurement [Axis] Statistical Measurement [Axis] Consideration paid to Grid shareholders Adjustments to Additional Paid in Capital, Other Subsequent Event Subsequent Event [Member] Cover [Abstract] Earnout shares vested (in shares) Options vested and outstanding (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Number of Shares Stockholders' Equity Note [Abstract] Stockholders' Equity Note [Abstract] Convertible Preferred Stock Preferred Stock [Member] Goodwill Goodwill Intangible assets, net Intangible assets, net Finite-Lived Intangible Assets, Net Cost of revenue Cost of Sales [Member] Accrued income taxes Accrued Income Taxes, Current Background and nature of operations Nature of Operations [Text Block] Adjustments to reconcile net loss to net cash provided by operating activities: Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract] Subsequent Event Type [Axis] Subsequent Event Type [Axis] Computers and equipment Computer Equipment [Member] Concentration Risk Benchmark [Axis] Concentration Risk Benchmark [Axis] Schedule of Finite-Lived Intangible Assets [Table] Schedule of Finite-Lived Intangible Assets [Table] Machinery and automobiles Automobiles [Member] Deferred income taxes Deferred Income Tax Expense (Benefit) Remaining contractual term Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term EX-101.PRE 10 gdyn-20210930_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT XML 11 gdyn-20210930_htm.xml IDEA: XBRL DOCUMENT 0001743725 2021-01-01 2021-09-30 0001743725 2021-11-02 0001743725 2021-09-30 0001743725 2020-12-31 0001743725 2021-07-01 2021-09-30 0001743725 2020-07-01 2020-09-30 0001743725 2020-01-01 2020-09-30 0001743725 us-gaap:PreferredStockMember 2020-12-31 0001743725 us-gaap:CommonStockMember 2020-12-31 0001743725 us-gaap:AdditionalPaidInCapitalMember 2020-12-31 0001743725 us-gaap:RetainedEarningsMember 2020-12-31 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-12-31 0001743725 us-gaap:RetainedEarningsMember 2021-01-01 2021-03-31 0001743725 2021-01-01 2021-03-31 0001743725 us-gaap:AdditionalPaidInCapitalMember 2021-01-01 2021-03-31 0001743725 us-gaap:CommonStockMember 2021-01-01 2021-03-31 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-01-01 2021-03-31 0001743725 us-gaap:PreferredStockMember 2021-03-31 0001743725 us-gaap:CommonStockMember 2021-03-31 0001743725 us-gaap:AdditionalPaidInCapitalMember 2021-03-31 0001743725 us-gaap:RetainedEarningsMember 2021-03-31 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-03-31 0001743725 2021-03-31 0001743725 us-gaap:RetainedEarningsMember 2021-04-01 2021-06-30 0001743725 2021-04-01 2021-06-30 0001743725 us-gaap:AdditionalPaidInCapitalMember 2021-04-01 2021-06-30 0001743725 us-gaap:CommonStockMember 2021-04-01 2021-06-30 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-04-01 2021-06-30 0001743725 us-gaap:PreferredStockMember 2021-06-30 0001743725 us-gaap:CommonStockMember 2021-06-30 0001743725 us-gaap:AdditionalPaidInCapitalMember 2021-06-30 0001743725 us-gaap:RetainedEarningsMember 2021-06-30 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-06-30 0001743725 2021-06-30 0001743725 us-gaap:RetainedEarningsMember 2021-07-01 2021-09-30 0001743725 us-gaap:AdditionalPaidInCapitalMember 2021-07-01 2021-09-30 0001743725 us-gaap:CommonStockMember 2021-07-01 2021-09-30 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-07-01 2021-09-30 0001743725 us-gaap:PreferredStockMember 2021-09-30 0001743725 us-gaap:CommonStockMember 2021-09-30 0001743725 us-gaap:AdditionalPaidInCapitalMember 2021-09-30 0001743725 us-gaap:RetainedEarningsMember 2021-09-30 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-09-30 0001743725 srt:ScenarioPreviouslyReportedMember us-gaap:PreferredStockMember 2019-12-31 0001743725 srt:ScenarioPreviouslyReportedMember us-gaap:CommonStockMember 2019-12-31 0001743725 srt:ScenarioPreviouslyReportedMember us-gaap:AdditionalPaidInCapitalMember 2019-12-31 0001743725 srt:ScenarioPreviouslyReportedMember us-gaap:RetainedEarningsMember 2019-12-31 0001743725 srt:ScenarioPreviouslyReportedMember us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-12-31 0001743725 srt:ScenarioPreviouslyReportedMember 2019-12-31 0001743725 srt:RestatementAdjustmentMember us-gaap:PreferredStockMember 2019-12-31 0001743725 srt:RestatementAdjustmentMember us-gaap:CommonStockMember 2019-12-31 0001743725 srt:RestatementAdjustmentMember us-gaap:AdditionalPaidInCapitalMember 2019-12-31 0001743725 srt:RestatementAdjustmentMember 2019-12-31 0001743725 us-gaap:PreferredStockMember 2019-12-31 0001743725 us-gaap:CommonStockMember 2019-12-31 0001743725 us-gaap:AdditionalPaidInCapitalMember 2019-12-31 0001743725 us-gaap:RetainedEarningsMember 2019-12-31 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-12-31 0001743725 2019-12-31 0001743725 us-gaap:RetainedEarningsMember 2020-01-01 2020-03-31 0001743725 2020-01-01 2020-03-31 0001743725 us-gaap:AdditionalPaidInCapitalMember 2020-01-01 2020-03-31 0001743725 us-gaap:PreferredStockMember 2020-01-01 2020-03-31 0001743725 us-gaap:CommonStockMember 2020-01-01 2020-03-31 0001743725 us-gaap:PreferredStockMember 2020-03-31 0001743725 us-gaap:CommonStockMember 2020-03-31 0001743725 us-gaap:AdditionalPaidInCapitalMember 2020-03-31 0001743725 us-gaap:RetainedEarningsMember 2020-03-31 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-03-31 0001743725 2020-03-31 0001743725 us-gaap:RetainedEarningsMember 2020-04-01 2020-06-30 0001743725 2020-04-01 2020-06-30 0001743725 us-gaap:AdditionalPaidInCapitalMember 2020-04-01 2020-06-30 0001743725 us-gaap:CommonStockMember 2020-04-01 2020-06-30 0001743725 us-gaap:PreferredStockMember 2020-06-30 0001743725 us-gaap:CommonStockMember 2020-06-30 0001743725 us-gaap:AdditionalPaidInCapitalMember 2020-06-30 0001743725 us-gaap:RetainedEarningsMember 2020-06-30 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-06-30 0001743725 2020-06-30 0001743725 us-gaap:RetainedEarningsMember 2020-07-01 2020-09-30 0001743725 us-gaap:AdditionalPaidInCapitalMember 2020-07-01 2020-09-30 0001743725 us-gaap:CommonStockMember 2020-07-01 2020-09-30 0001743725 us-gaap:PreferredStockMember 2020-09-30 0001743725 us-gaap:CommonStockMember 2020-09-30 0001743725 us-gaap:AdditionalPaidInCapitalMember 2020-09-30 0001743725 us-gaap:RetainedEarningsMember 2020-09-30 0001743725 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-09-30 0001743725 2020-09-30 0001743725 2020-03-05 0001743725 2020-03-05 2020-03-05 0001743725 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-09-30 0001743725 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001743725 gdyn:UnbilledReceivablesMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-09-30 0001743725 gdyn:UnbilledReceivablesMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001743725 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2020-07-01 2020-09-30 0001743725 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-09-30 0001743725 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-07-01 2021-09-30 0001743725 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-09-30 0001743725 srt:MinimumMember 2021-01-01 2021-09-30 0001743725 srt:MaximumMember 2021-01-01 2021-09-30 0001743725 gdyn:GDIMember gdyn:ChaSergMember 2020-03-05 0001743725 srt:RestatementAdjustmentMember gdyn:GDIMember gdyn:ChaSergMember 2020-03-05 2020-03-05 0001743725 gdyn:GDIMember gdyn:ChaSergMember 2020-03-05 2020-03-05 0001743725 gdyn:ChaSergMember 2020-03-05 0001743725 gdyn:AdditionalPaidInCapitalReductionOfProceedsMember 2020-03-05 2020-03-05 0001743725 us-gaap:GeneralAndAdministrativeExpenseMember 2020-03-05 2020-03-05 0001743725 gdyn:A2017AcquisitionMember gdyn:CostOfRevenueAndOperatingExpensesMember 2020-03-05 2020-03-05 0001743725 gdyn:TacticKnowledgeIncMember 2021-05-29 0001743725 gdyn:TacticKnowledgeIncMember 2021-05-29 2021-05-29 0001743725 gdyn:TacticKnowledgeIncMember us-gaap:CustomerRelationshipsMember 2021-05-29 0001743725 gdyn:TacticKnowledgeIncMember us-gaap:TradeNamesMember 2021-05-29 0001743725 gdyn:TacticKnowledgeIncMember us-gaap:CustomerRelationshipsMember 2021-05-29 2021-05-29 0001743725 gdyn:TacticKnowledgeIncMember us-gaap:TradeNamesMember 2021-05-29 2021-05-29 0001743725 gdyn:TacticKnowledgeIncMember 2021-01-01 2021-09-30 0001743725 gdyn:TacticKnowledgeIncMember 2020-01-01 2020-09-30 0001743725 srt:MinimumMember us-gaap:ComputerEquipmentMember 2021-01-01 2021-09-30 0001743725 srt:MaximumMember us-gaap:ComputerEquipmentMember 2021-01-01 2021-09-30 0001743725 us-gaap:ComputerEquipmentMember 2021-09-30 0001743725 us-gaap:ComputerEquipmentMember 2020-12-31 0001743725 us-gaap:AutomobilesMember 2021-01-01 2021-09-30 0001743725 us-gaap:AutomobilesMember 2021-09-30 0001743725 us-gaap:AutomobilesMember 2020-12-31 0001743725 srt:MinimumMember us-gaap:FurnitureAndFixturesMember 2021-01-01 2021-09-30 0001743725 srt:MaximumMember us-gaap:FurnitureAndFixturesMember 2021-01-01 2021-09-30 0001743725 us-gaap:FurnitureAndFixturesMember 2021-09-30 0001743725 us-gaap:FurnitureAndFixturesMember 2020-12-31 0001743725 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2021-01-01 2021-09-30 0001743725 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2021-09-30 0001743725 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2020-12-31 0001743725 srt:MinimumMember us-gaap:LeaseholdImprovementsMember 2021-01-01 2021-09-30 0001743725 srt:MaximumMember us-gaap:LeaseholdImprovementsMember 2021-01-01 2021-09-30 0001743725 us-gaap:LeaseholdImprovementsMember 2021-09-30 0001743725 us-gaap:LeaseholdImprovementsMember 2020-12-31 0001743725 gdyn:PropertyPlantAndEquipmentExcludingCapitalizedSoftwareCostsMember 2021-09-30 0001743725 gdyn:PropertyPlantAndEquipmentExcludingCapitalizedSoftwareCostsMember 2020-12-31 0001743725 srt:MinimumMember us-gaap:SoftwareDevelopmentMember 2021-01-01 2021-09-30 0001743725 srt:MaximumMember us-gaap:SoftwareDevelopmentMember 2021-01-01 2021-09-30 0001743725 us-gaap:SoftwareDevelopmentMember 2021-09-30 0001743725 us-gaap:SoftwareDevelopmentMember 2020-12-31 0001743725 srt:MinimumMember us-gaap:CustomerRelationshipsMember 2021-01-01 2021-09-30 0001743725 srt:MaximumMember us-gaap:CustomerRelationshipsMember 2021-01-01 2021-09-30 0001743725 us-gaap:CustomerRelationshipsMember 2021-09-30 0001743725 us-gaap:CustomerRelationshipsMember 2020-12-31 0001743725 srt:MinimumMember us-gaap:TrademarksAndTradeNamesMember 2021-01-01 2021-09-30 0001743725 srt:MaximumMember us-gaap:TrademarksAndTradeNamesMember 2021-01-01 2021-09-30 0001743725 us-gaap:TrademarksAndTradeNamesMember 2021-09-30 0001743725 us-gaap:TrademarksAndTradeNamesMember 2020-12-31 0001743725 us-gaap:NoncompeteAgreementsMember 2021-01-01 2021-09-30 0001743725 us-gaap:NoncompeteAgreementsMember 2021-09-30 0001743725 us-gaap:NoncompeteAgreementsMember 2020-12-31 0001743725 gdyn:DaxxWebIndustriesBVDaxxMember 2020-12-14 0001743725 gdyn:DaxxWebIndustriesBVDaxxMember us-gaap:OtherNonoperatingIncomeExpenseMember 2021-07-01 2021-09-30 0001743725 us-gaap:OtherCurrentLiabilitiesMember 2021-09-30 0001743725 country:GB 2021-01-01 2021-09-30 0001743725 us-gaap:CommonStockMember 2021-03-05 0001743725 gdyn:FollowOnPublicOfferingMember 2021-07-06 2021-07-06 0001743725 gdyn:FollowOnPublicOfferingSharesFromParentMember 2021-07-06 2021-07-06 0001743725 gdyn:FollowOnPublicOfferingSharesFromSellingShareholdersMember 2021-07-06 2021-07-06 0001743725 2021-07-06 0001743725 gdyn:GDIMember 2019-12-31 0001743725 gdyn:GDIMember 2020-03-05 0001743725 gdyn:EarnoutSharesMember 2021-03-05 0001743725 gdyn:EarnoutSharesOneMember 2021-09-30 0001743725 gdyn:EarnoutSharesTwoMember 2021-09-30 0001743725 gdyn:EarnoutSharesThreeMember 2021-09-30 0001743725 gdyn:EarnoutSharesMember 2021-09-30 0001743725 gdyn:EarnoutSharesMember 2020-12-31 2020-12-31 0001743725 gdyn:EarnoutSharesMember 2021-01-20 2021-01-20 0001743725 gdyn:EarnoutSharesMember 2021-03-02 2021-03-02 0001743725 gdyn:EarnoutSharesMember 2021-03-29 2021-03-29 0001743725 gdyn:PublicWarrantMember 2021-07-23 2021-07-26 0001743725 gdyn:PublicWarrantMember 2021-07-28 0001743725 gdyn:PublicWarrantMember 2021-08-30 0001743725 gdyn:PublicWarrantMember 2021-07-28 2021-07-28 0001743725 gdyn:PrivateWarrantMember 2021-09-30 0001743725 gdyn:PublicWarrantMember 2021-09-30 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2020-03-05 2020-03-05 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2020-03-05 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2021-01-01 2021-09-30 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2019-12-31 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2020-01-01 2020-03-31 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2020-03-31 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2020-03-01 2020-03-06 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2020-03-06 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2020-03-07 2020-12-31 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2020-12-31 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2021-01-01 2021-03-31 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2021-03-31 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2021-04-01 2021-06-30 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2021-06-30 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2021-07-01 2021-09-30 0001743725 gdyn:TwoThousandEighteenStockPlanMember 2021-09-30 0001743725 us-gaap:EmployeeStockOptionMember gdyn:TwoThousandEighteenStockPlanMember 2021-01-01 2021-09-30 0001743725 us-gaap:EmployeeStockOptionMember gdyn:TwoThousandEighteenStockPlanMember 2021-09-30 0001743725 gdyn:A2020EquityIncentivePlanMember 2020-03-05 0001743725 gdyn:NonStatutoryStockOptionNSOMember gdyn:A2020EquityIncentivePlanMember 2021-07-01 2021-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember gdyn:A2020EquityIncentivePlanMember 2021-07-01 2021-09-30 0001743725 gdyn:A2020EquityIncentivePlanMember 2020-12-31 0001743725 gdyn:A2020EquityIncentivePlanMember 2021-01-01 2021-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember gdyn:A2020EquityIncentivePlanMember 2021-01-01 2021-09-30 0001743725 us-gaap:PerformanceSharesMember gdyn:A2020EquityIncentivePlanMember 2021-01-01 2021-09-30 0001743725 gdyn:A2020EquityIncentivePlanMember 2021-09-30 0001743725 gdyn:NonStatutoryStockOptionNSOMember 2021-01-01 2021-09-30 0001743725 gdyn:A2020EquityIncentivePlanMember 2020-01-01 2020-12-31 0001743725 gdyn:NonStatutoryStockOptionNSOMember gdyn:A2020EquityIncentivePlanMember 2021-01-01 2021-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember 2020-12-31 0001743725 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember 2021-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember gdyn:A2020EquityIncentivePlanMember 2021-09-30 0001743725 us-gaap:PerformanceSharesMember gdyn:A2020EquityIncentivePlanMember 2021-03-02 2021-03-02 0001743725 us-gaap:PerformanceSharesMember gdyn:A2020EquityIncentivePlanMember 2021-03-02 0001743725 us-gaap:PerformanceSharesMember 2021-06-16 2021-06-16 0001743725 us-gaap:PerformanceSharesMember 2021-09-30 0001743725 us-gaap:PerformanceSharesMember 2021-01-01 2021-09-30 0001743725 us-gaap:CostOfSalesMember 2021-07-01 2021-09-30 0001743725 us-gaap:CostOfSalesMember 2020-07-01 2020-09-30 0001743725 us-gaap:CostOfSalesMember 2021-01-01 2021-09-30 0001743725 us-gaap:CostOfSalesMember 2020-01-01 2020-09-30 0001743725 us-gaap:ResearchAndDevelopmentExpenseMember 2021-07-01 2021-09-30 0001743725 us-gaap:ResearchAndDevelopmentExpenseMember 2020-07-01 2020-09-30 0001743725 us-gaap:ResearchAndDevelopmentExpenseMember 2021-01-01 2021-09-30 0001743725 us-gaap:ResearchAndDevelopmentExpenseMember 2020-01-01 2020-09-30 0001743725 us-gaap:SellingAndMarketingExpenseMember 2021-07-01 2021-09-30 0001743725 us-gaap:SellingAndMarketingExpenseMember 2020-07-01 2020-09-30 0001743725 us-gaap:SellingAndMarketingExpenseMember 2021-01-01 2021-09-30 0001743725 us-gaap:SellingAndMarketingExpenseMember 2020-01-01 2020-09-30 0001743725 us-gaap:GeneralAndAdministrativeExpenseMember 2021-07-01 2021-09-30 0001743725 us-gaap:GeneralAndAdministrativeExpenseMember 2020-07-01 2020-09-30 0001743725 us-gaap:GeneralAndAdministrativeExpenseMember 2021-01-01 2021-09-30 0001743725 us-gaap:GeneralAndAdministrativeExpenseMember 2020-01-01 2020-09-30 0001743725 gdyn:NonStatutoryStockOptionNSOMember gdyn:A2020EquityIncentivePlanMember us-gaap:ShareBasedCompensationAwardTrancheOneMember 2021-01-01 2021-09-30 0001743725 gdyn:NonStatutoryStockOptionNSOMember gdyn:A2020EquityIncentivePlanMember us-gaap:ShareBasedCompensationAwardTrancheTwoMember 2021-01-01 2021-09-30 0001743725 us-gaap:ConvertiblePreferredStockMember 2021-07-01 2021-09-30 0001743725 us-gaap:ConvertiblePreferredStockMember 2020-07-01 2020-09-30 0001743725 us-gaap:ConvertiblePreferredStockMember 2021-01-01 2021-09-30 0001743725 us-gaap:ConvertiblePreferredStockMember 2020-01-01 2020-09-30 0001743725 us-gaap:EmployeeStockOptionMember 2021-07-01 2021-09-30 0001743725 us-gaap:EmployeeStockOptionMember 2020-07-01 2020-09-30 0001743725 us-gaap:EmployeeStockOptionMember 2021-01-01 2021-09-30 0001743725 us-gaap:EmployeeStockOptionMember 2020-01-01 2020-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember 2021-07-01 2021-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember 2020-07-01 2020-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-09-30 0001743725 us-gaap:RestrictedStockUnitsRSUMember 2020-01-01 2020-09-30 0001743725 us-gaap:PerformanceSharesMember 2021-07-01 2021-09-30 0001743725 us-gaap:PerformanceSharesMember 2020-07-01 2020-09-30 0001743725 us-gaap:PerformanceSharesMember 2021-01-01 2021-09-30 0001743725 us-gaap:PerformanceSharesMember 2020-01-01 2020-09-30 0001743725 us-gaap:WarrantMember 2021-07-01 2021-09-30 0001743725 us-gaap:WarrantMember 2020-07-01 2020-09-30 0001743725 us-gaap:WarrantMember 2021-01-01 2021-09-30 0001743725 us-gaap:WarrantMember 2020-01-01 2020-09-30 0001743725 gdyn:GDIMember us-gaap:SubsequentEventMember gdyn:ChaSergMember 2021-10-01 2021-10-31 shares iso4217:USD iso4217:USD shares gdyn:customer gdyn:reportingUnit pure gdyn:employee --12-31 false 0001743725 2021 Q3 1 P30D 0.25 0.0625 10-Q true 2021-09-30 false 001-38685 Grid Dynamics Holdings, Inc. DE 83-0632724 5000 Executive Parkway Suite 520 San Ramon CA 94583 650 523-5000 Common Stock, par value $0.0001 per share GDYN NASDAQ Yes Yes Accelerated Filer false true false false 65251896 199297000 112745000 254000 418000 30773000 30773000 16890000 16890000 4883000 1799000 694000 821000 5301000 2361000 240948000 134616000 5395000 4095000 19729000 8125000 3258000 5609000 35358000 14690000 304688000 167135000 1772000 757000 1148000 628000 11222000 7479000 2302000 1248000 7775000 3206000 24219000 13318000 4903000 2093000 29122000 15411000 0.0001 0.0001 110000000 110000000 65121241 65121241 50878780 50878780 7000 5000 256936000 128930000 18699000 22793000 -76000 -4000 275566000 151724000 304688000 167135000 57933000 26332000 144743000 81157000 32667000 15178000 84343000 51799000 25266000 11154000 60400000 29358000 2132000 2076000 5687000 7193000 4073000 2245000 9942000 7451000 17091000 8504000 43195000 26606000 23296000 12825000 58824000 41250000 1970000 -1671000 1576000 -11892000 114000 455000 -1015000 419000 2084000 -1216000 561000 -11473000 2633000 -99000 4655000 -3594000 -549000 -1117000 -4094000 -7879000 -86000 0 -72000 0 -635000 -1117000 -4166000 -7879000 -0.01 -0.02 -0.07 -0.18 -0.01 -0.02 -0.07 -0.18 62610000 49651000 56280000 43074000 62610000 49651000 56280000 43074000 0 0 50879000 5000 128930000 22793000 -4000 151724000 -2062000 -2062000 5671000 5671000 2221000 41000 162000 162000 1030000 -15297000 -15297000 49000 49000 0 0 54171000 5000 119466000 20731000 45000 140247000 -1483000 -1483000 6675000 6675000 271000 918000 918000 138000 254000 254000 149000 -3564000 -3564000 -35000 -35000 0 0 54729000 5000 123749000 19248000 10000 143012000 -549000 -549000 9113000 9113000 4188000 1000 48205000 48206000 656000 203000 203000 498000 5470000 1000 77812000 77813000 78000 -2146000 -2146000 -86000 -86000 0 0 65121000 7000 256936000 18699000 -76000 275566000 622000 9187000 12847000 8117000 10535000 35392000 0 54044000 426000 8797000 -8115000 8115000 0 1048000 9187000 21644000 2000 18650000 35392000 0 54044000 -4596000 -4596000 4804000 4804000 -1048000 -9187000 1048000 1000 9187000 9188000 -123865000 -123865000 4142000 28088000 2000 204323000 204325000 53000 530000 530000 0 0 50833000 5000 113629000 30796000 0 144430000 -2166000 -2166000 3654000 3654000 6000 59000 59000 0 0 50839000 5000 117342000 28630000 0 145977000 -1117000 -1117000 5126000 5126000 6000 19000 19000 15000 0 0 50860000 5000 122487000 27513000 0 150005000 -4094000 -7879000 3520000 1896000 -17000 398000 2663000 -4519000 21459000 13584000 979000 0 10549000 2139000 1257000 -2973000 -127000 822000 2062000 -10000 676000 -250000 16000 -576000 1533000 348000 848000 110000 813000 -136000 14655000 2998000 3016000 1607000 30585000 0 -33601000 -1607000 0 208997000 0 123865000 0 2264000 21007000 0 619000 78000 48145000 0 78311000 0 498000 0 105570000 82946000 -72000 0 86552000 84337000 112745000 42189000 199297000 126526000 1403000 1370000 0 9187000 979000 0 2979000 0 Background and nature of operations<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Grid Dynamics Holdings, Inc. (the “Company” or “GDH”) provides enterprise-level digital transformation in the areas of search, analytics, and release automation to Fortune 1000 companies. The Company’s headquarters and principal place of business is in San Ramon, California.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company was originally incorporated in Delaware on May 21, 2018 as a special purpose acquisition company under the name ChaSerg Technology Acquisition Corp. (“ChaSerg”) for the purpose of effecting a merger, capital stock exchange, asset acquisition, stock purchase, reorganization or similar business combination involving ChaSerg and one or more businesses. On March 5, 2020 (the “Closing”), the Company consummated its business combination with Grid Dynamics International, Inc. (“GDI”) pursuant to the Agreement and Plan of Merger (the “Merger Agreement”), dated November 13, 2019 (the “Business Combination”). In connection with the Closing, the Company changed its name from ChaSerg Technology Acquisition Corp. to Grid Dynamics Holdings, Inc. The Company’s common stock is now listed on the NASDAQ under the symbol “GDYN” and warrants to purchase the common stock at an exercise price of $11.50 per share were listed on the NASDAQ under the symbol “GDYNW” until they all were delisted on August 30, 2021 following redemption.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Unless the context otherwise requires, the “Company” refers to the combined company and its subsidiaries following the Business Combination, “ChaSerg” refers to the Company prior to the Closing, and “GDI” refers to GDI prior to the Closing. Refer to Note 3 for further discussion of the Business Combination.</span></div> 11.50 Basis of presentation and summary of significant accounting policies<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a summary of the significant accounting policies consistently applied in the preparation of the accompanying consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Unaudited Interim Financial Statements</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States (“U.S. GAAP”) for interim financial information and in accordance with the rules and regulations of the Securities and Exchange Commission (“SEC”). Accordingly, they do not include all of the information and footnotes required by U.S. GAAP for complete financial statements. The unaudited condensed consolidated financial statements reflect all normal and recurring adjustments that are, in the opinion of the Company’s management, necessary for the fair presentation of the results of operations for the interim periods. Operating results for the three and nine months ended September 30, 2021 are not necessarily indicative of the results that may be expected for the year ending December 31, 2021. These interim financial statements should be read in conjunction with GDH’s audited financial statements for the year ended December 31, 2020 included in the Company’s annual report on Form 10-K that the Company filed with the SEC on March 5, 2021.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Basis of presentation</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Business Combination was accounted for as a reverse recapitalization in accordance with U.S. GAAP. Although ChaSerg was the legal acquirer, for accounting purposes, GDI was deemed to be the accounting acquirer. GDI was determined to be the accounting acquirer based on evaluation of the following facts and circumstances:</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">GDI holds executive management roles for the Company and those individuals are responsible for the day-to-day operations;</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">GDI’s former owners have the largest minority voting rights in the Company;</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">From a revenue and business operation standpoint, GDI was the larger entity in terms of relative size;</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">GDI’s San Ramon, CA headquarters are the headquarters of the Company; and</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The intended strategy of the Company will continue GDI’s strategy of driving enterprise-level digital transformation in the Fortune 1000 companies.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In conjunction with the Business Combination, outstanding shares of GDI were converted into common stock of the Company, par value $0.0001 per share, shown as a recapitalization, and the net assets of ChaSerg were acquired at historical cost, with no goodwill or other intangible assets recorded. GDI was deemed to be the predecessor of the Company, and the consolidated assets and liabilities and results of operations prior to the Closing (for the years ended December 31, 2019 and 2018 and the period from January 1, 2020 to March 5, 2020) are those of GDI. ChaSerg’s assets and liabilities, which include net cash from the trust of $85.1 million, and results of operations were consolidated with GDI beginning on the Closing.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with guidance applicable to these circumstances, the equity structure has been restated in all comparative periods up to the Closing Date, to reflect the number of shares of the Company’s common stock, $0.0001 par value per share, issued to GDI shareholders in connection with the recapitalization transaction. As such, the shares and corresponding capital amounts and earnings per share related to GDI preferred and common stock prior to the Business Combination have been retroactively restated as shares reflecting the exchange ratio established in the Business Combination.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Principles of consolidation</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying condensed financial statements include the accounts of the Company and all of its subsidiaries that are directly or indirectly owned or controlled. Intercompany transactions and balances have been eliminated upon consolidation.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Use of estimates</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of the consolidated condensed financial statements in accordance with U.S. GAAP requires the Company to make estimates and assumptions that affect the amounts reported in the condensed consolidated financial statements and accompanying notes. Actual results could differ from these estimates and such differences could be material. Significant estimates include allowances for receivables, calculation of accrued liabilities, capitalization of internally developed software, stock-based compensation, contingent consideration payable, determination of fair value, useful lives and recoverability of intangible assets and goodwill, determination of provision for income taxes and uncertain tax positions.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Certain significant risks and uncertainties</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company is subject to risks, including but not limited to customer concentration, concentrations of credit and foreign currency risks. Refer to the section below for additional information. Additionally, the Company has been impacted by the coronavirus (“COVID-19”) pandemic. The global pandemic of COVID-19 has negatively affected the U.S. and global economy, disrupted global supply chains, resulted in significant travel and transport restrictions, including mandated closures and orders to “shelter-in-place,” and created significant disruption of the financial market. In 2020 the COVID-19 pandemic impacted the Company’s revenues, and the Company’s business continues to be exposed to risks and uncertainties related to the pandemic. The impact of the COVID-19 pandemic had been more pronounced with the Company’s retail customers, which depended on keeping their stores open. Additionally, in situations where the Company’s customers encountered financial difficulties, there was a risk associated with the Company’s inability to collect money from customers. In 2020 the Company took several actions to deal with the COVID-19 pandemic. These included enabling its employees to work from home, company-wide salary and compensation cuts, hiring freezes, and suspending all non-essential travel. Some of these actions such as working from home as well as suspending all non-essential travel continues to be currently in place. As the Company's business recovered in 2021, the Company discontinued some of the cost saving measures such as compensation cuts and hiring freezes. The Company now is facing the opposite challenges including employee retention and shortage of talent on the job market. The ultimate impact and the extent to which the COVID-19 pandemic will continue to affect the business, results of operation and financial condition is difficult to predict and depends on numerous evolving factors outside of the Company’s control including: the duration and scope of the pandemic, including from renewed waves and new variants; government, social, business and other actions that have been and will be taken in response to the pandemic; and the effect of the pandemic on short and long-term general economic conditions.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Concentrations of credit risk and significant customers</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company records its accounts receivable and unbilled receivables at their face amounts less allowances. Accounts receivable and unbilled receivables are generally dispersed across the Company’s customers in proportion to their revenue. Two customers individually exceeded 10% of the Company’s accounts receivable balance as of September 30, 2021 and three customers individually exceeded 10% of the Company’s accounts receivable balance as of December 31, 2020. Two customers individually exceeded 10% of the unbilled receivables as of September 30, 2021 and three customers individually exceeded 10% of the unbilled receivables as of December 31, 2020. Two customers individually accounted for greater than 10% of the sales for the three and nine months ended September 30, 2021 and 2020, respectively. </span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Cash and cash equivalents</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company considers cash equivalents to be highly liquid investments with original maturities of three months or less from the date of purchase. Cash equivalents are stated at cost, which approximates fair value. At times, cash deposits with banks may exceed federally insured limits.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Accounts receivable and allowance for doubtful accounts</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accounts receivable, less allowance for doubtful accounts, reflect the net realizable value of receivables and approximate fair value. The Company maintains an allowance against accounts receivable for the estimated probable losses on uncollectible accounts. The allowance is based upon historical loss experience, current economic conditions within the industries the Company serves as well as determination of the specific risk related to certain customers. Accounts receivable are charged off against the reserve when, in management’s estimation, further collection efforts would not result in a reasonable likelihood of receipt. </span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:66.005%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">As of</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2020</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(in thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Trade accounts receivable</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">31,027 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">17,308 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Allowance for doubtful accounts</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(254)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(418)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total trade accounts receivable, net</span></td><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"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">30,773 </span></td><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"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><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"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">16,890 </span></td><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"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Unbilled receivables</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Generally, the Company will not bill customers until the services have been completed. From time-to-time, a service period may overlap with a period-end and the unbilled receivables represent amounts for services performed through period-end, but not yet billed. The unbilled receivable represents the amount expected to be billed and collected for services performed through period-end in accordance with contract terms. The unbilled receivables balances were $4.9 million and $1.8 million as of September 30, 2021 and December 31, 2020, respectively.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Goodwill</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill represents the excess of purchase price over the fair value of the net assets of businesses acquired. On an annual basis, the Company makes a qualitative assessment to determine if it is more likely than not that the fair value of the reporting unit is less than its carrying amount, including goodwill. If the Company determines that the fair value of the reporting unit is less than its carrying amount, it will perform a quantitative analysis; otherwise, no further evaluation is necessary. For the quantitative impairment assessment, the Company compares the fair value of the reporting unit to its carrying value, including goodwill. The Company uses the discounted cash flow method of the income approach and market approach to determine the fair value of the reporting unit. If the fair value of the reporting unit exceeds the carrying value of the net assets assigned to that unit, goodwill is not impaired, and no further testing is performed. If the carrying value of the net assets assigned to the reporting unit exceeds the fair value of the reporting unit, then the Company will recognize a loss equal to the excess, limited to the total amount of goodwill allocated to that reporting unit. Impairments, if any, are charged directly to earnings. As of September 30, 2021, the Company has a single reporting unit and determined there were no indicators of impairment.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Intangible assets</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Finite-lived intangible assets are stated at cost less accumulated amortization. Amortization is computed on the straight-line basis over the asset’s useful lives ranging between 2 and 12 years. Intangible assets are evaluated for impairment whenever events or changes in circumstances indicate that the carrying value of the assets may not be fully recoverable. If facts and circumstances indicate that the carrying value might not be recoverable, projected undiscounted net cash flows associated with the related asset or group of assets over their estimated remaining useful lives is compared against their respective carrying amounts. If an asset is found to be impaired, the impairment charge will be measured as the amount by which the carrying amount of an entity exceeds its fair value. As of September 30, 2021, the Company determined there were no indicators of impairment.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue recognition</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company accounts for a contract with a customer when 1) the parties to the contract have approved the contract and are committed to performing their respective obligations, 2) the contract identifies each party’s rights regarding the goods or services to be transferred, 3) the contract identifies the payment terms for the goods or services to be transferred, 4) the contract has commercial substance, and 5) collection of substantially all consideration pursuant to the contract is probable.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company derives its revenue from offering a suite of digital engineering and information technology (“IT”) consulting services, including digital transformation strategy, emerging technology, lean labs and legacy system replatforming. For most contracts, the Company uses master agreements to govern the overall relevant terms and conditions of the business arrangement between the Company and its customers. When the Company and a customer enter into a Master Services Agreement (“MSA”), purchases are generally made by the customer via a statement of work (“SOW”) which explicitly references the MSA and specifies the services to be delivered. Fees for these contracts may be in the form of time-and-materials or fixed-fee arrangements. The majority of the Company’s revenues are generated under time-and-material contracts which are billed using hourly rates to determine the amounts to be charged directly to the customer. Fees are billed and collected as stipulated in the contract, and revenue is recognized as services are performed. If there is an uncertainty about the receipt of payment for the services, revenue is recognized to the extent that a significant reversal of revenue would not be probable.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consulting services revenue is a single performance obligation earned through a series of distinct daily services and may include services such as those described above. The Company recognizes revenue for services over time as the customer simultaneously receives and consumes the benefits as the Company performs IT consulting services. For revenue contracts, the customer derives value from the Company providing daily consulting services, and the value derived corresponds to the labor hours expended. Therefore, the Company measures the progress and recognizes revenue using an effort-based input method. For fixed fee contracts, the Company recognizes revenue as the work is performed, the monthly calculation of which is based upon actual labor hours incurred and level of effort expended throughout the duration of the contract.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For time-and-material contracts, the Company applies the variable consideration allocation exception. Therefore, instead of allocating the variable consideration to the entire performance obligation, the Company determined the variable consideration should be allocated to each distinct service to which the variable consideration relates, which is providing the customer daily consulting services. The Company also offers volume discounts or early settlement discounts. Volume discounts apply once the customer reaches certain contractual spend thresholds. Early settlement discounts are issued contingent upon the timing of the payment from the customer. If the consideration promised in a contract includes a variable amount, the Company only includes estimated amounts of consideration in the transaction price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. These estimates may require management to make subjective judgments and to make estimates about the effects of matters inherently uncertain. The determination of whether to constrain consideration in the transaction price are based on information (historical, current and forecasted) that is reasonably available to the Company, taking into consideration the type of customer, the type of transaction and the specific facts and circumstances of each arrangement. Although the Company believes that its approach in developing estimates and its reliance on certain judgments and underlying inputs is reasonable, actual results may differ from management’s estimates, judgments and assumptions. These estimates have historically not been material to the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Remaining performance obligation</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC 606 requires that the Company disclose the aggregate amount of transaction price that is allocated to performance obligations that have not yet been satisfied as of September 30, 2021. This disclosure is not required for:</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">contracts with an original duration of one year or less, including contracts that can be terminated for convenience without a substantive penalty,</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">contracts for which the Company recognizes revenues based on the right to invoice for services performed,</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">variable consideration allocated entirely to a wholly unsatisfied performance obligation or to a wholly unsatisfied promise to transfer a distinct good or service that forms part of a single performance obligation in accordance with ASC 606-10-25-14(b), for which the criteria in ASC 606-10-32-40 have been met, or</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">variable consideration in the form of a sales-based or usage-based royalty promised in exchange for a license of intellectual property.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All of the Company’s contracts met one or more of these exemptions as of September 30, 2021.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Stock-based compensation expense</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is measured based on the grant-date fair value of the share-based awards. Forfeitures are recognized as incurred. The Company estimates stock options grant-date fair value using the Black-Scholes-Merton option pricing model. The model requires management to make a number of key assumptions including expected volatility, expected term, risk-free interest rate, and expected dividends. The Company evaluates the assumptions used to value its share-based awards on each grant date. The fair market value of Grid Dynamics stock is determined based on the closing price on NASDAQ on the measurement date. The Company amortizes the grant-date fair value of all share-based compensation awards over the employee’s requisite service period for the entire award on a straight-line basis, which is generally the vesting period. For an award with graded vesting that is subject only to a service condition (e.g., time-based vesting), the Company uses the straight-line attribution method under ASC 718 under which they recognize compensation cost on a straight-line basis over the total requisite service period for the entire award (i.e., over the requisite service period of the last separately-vesting tranche of the award). Additionally, the Company applies the “floor” concept so that the amount of compensation cost that is recognized as of any date is at least equal to the grant-date fair value of the vested portion of the award on that date. That is, if the straight-line expense recognized to date is less than the grant date fair value of the award that is legally vested at that date, the company will increase its recognized expense to at least equal the fair value of the vested amount. Refer to Note 10 — Stock-based compensation for additional information.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Income taxes</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company follows the asset and liability method of accounting for income taxes. Under this method, deferred income taxes are recognized for the tax consequences of temporary differences between the financial statement carrying amounts and the tax basis of the assets and liabilities. The determination of the provision for income taxes requires significant judgment, the use of estimates and the interpretation and application of complex tax laws. The provision for income taxes reflects a combination of income earned and taxed in the various U.S. federal and state, international and other jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for tax contingencies or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective tax rate.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In assessing the realizability of deferred tax assets, management considers whether it is more likely than not that some portion, or all, of the deferred tax assets will not be realized. Management considers all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes prior earnings history, the scheduled reversal of deferred tax liabilities, projected future taxable income, carryback and carryforward periods of tax attributes, and tax planning strategies that could potentially enhance the likelihood of realization of a deferred tax asset in making this assessment. The weight given to the positive and negative evidence is commensurate with the extent to which the evidence may be objectively verified.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company evaluates for uncertain tax positions at each balance sheet date. When it is more likely than not that a position will be sustained upon examination by a tax authority that has full knowledge of all relevant information, the Company measures the amount of tax benefit from the position and records the largest amount of tax benefit that is greater than 50% likely of being realized after settlement with a tax authority. The Company’s policy for interest and/or penalties related to underpayments of income taxes is to include interest and penalties in income tax expense.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes to U.S. GAAP are established by the Financial Accounting Standards Board (the “FASB”), in the form of Accounting Standards Updates (“ASUs”), to the FASB’s ASC. The Company has elected not to opt out of the extended transition period and thus when a standard is issued or revised and it has different application dates for public or private companies, the Company, as an emerging growth company, can adopt the new or revised standard at the time private companies adopt the new or revised standard.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2019, the FASB issued Accounting Standard Update No. 2019-12, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">(Topic 740):</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Simplifying the Accounting for Income Taxes</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> (ASU 2019-12), which simplifies the accounting for income taxes by removing certain exceptions to the general principles and also simplification of areas such as franchise taxes, step-up in tax basis goodwill, separate entity financial statements and interim recognition of enactment of tax laws or rate changes. The update is effective for fiscal years and interim periods within those fiscal years beginning after December 15, 2020, and early adoption is permitted. The Company adopted the standard as of January 1, 2021 and has determined that the adoption of this guidance did not have a material effect on the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recently issued accounting pronouncements</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company considered the applicability and impact of all ASUs. ASUs not listed below were assessed and determined to be either not applicable or are expected to have minimal impact on the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In February 2016, the FASB issued ASU No. 2016-2, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Leases</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2016-2 requires lessees to put most leases on their balance sheet while recognizing expense in a manner similar to existing accounting. ASU 2016-2 states that a lessee would recognize a lease liability for the obligation to make lease payments and a right-to-use asset for the right to use the underlying asset for the lease term. The standard allows for two methods of adoption to recognize and measure leases: retrospectively to each prior period presented in the financial statements with the cumulative effect of initially applying the guidance recognized at the beginning of the earliest comparative period presented or retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. Both adoption methods include a number of optional practical expedients that entities may elect to apply. The Company will adopt the standard retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. The new accounting guidance is effective for the Company for fiscal periods beginning after December 15, 2021. The Company expects the impact to be material but has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2016, the FASB issued ASU 2016-13, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments-Credit Losses (Topic 326) — Measurement of Credit Losses on Financial Instruments</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Topic 326 was subsequently amended by ASU 2019-4, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements to Topic 326, Financial Instruments — Credit Losses,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> ASU 2019-5, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments — Credit Losses (Topic 326): Targeted Transition Relief,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and clarified the guidance with the release of ASU 2020-2 </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments—Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Leases (Topic 842).</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> These ASUs replace the current incurred loss impairment methodology with a methodology that reflects expected credit losses measured at amortized cost and certain other instruments, including loans, held-to-maturity debt securities, net investments in leases, and off-balance sheet credit exposures. The update is effective for fiscal years beginning after December 15, 2022, and interim periods with fiscal years after December 15, 2022. The Company has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, FASB issued ASU No. 2020-3, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification to Financial Instruments.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> This ASU improves and clarifies various financial instruments topics, including the current expected credit losses standard issued in 2016. The ASU includes seven different issues that describe the areas of improvement and the related amendments to U.S. GAAP, intended to make the standards easier to understand and apply by eliminating inconsistencies and providing clarifications. The amendments related to Issue 1, Issue 2, Issue 3, Issue 4, and Issue 5 were effective upon issuance of this update. The new guidance did not have a material impact on the consolidated financial statements. The amendments related to Issue 6 and Issue 7 are effective for the Company the earlier of January 1, 2023 or when the Company adopts ASU 2016-13, if early adopted. The Company is currently evaluating the impact these topics will have on the consolidated financial statements.</span></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Basis of presentation</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Business Combination was accounted for as a reverse recapitalization in accordance with U.S. GAAP. Although ChaSerg was the legal acquirer, for accounting purposes, GDI was deemed to be the accounting acquirer. GDI was determined to be the accounting acquirer based on evaluation of the following facts and circumstances:</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">GDI holds executive management roles for the Company and those individuals are responsible for the day-to-day operations;</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">GDI’s former owners have the largest minority voting rights in the Company;</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">From a revenue and business operation standpoint, GDI was the larger entity in terms of relative size;</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">GDI’s San Ramon, CA headquarters are the headquarters of the Company; and</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">•</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The intended strategy of the Company will continue GDI’s strategy of driving enterprise-level digital transformation in the Fortune 1000 companies.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In conjunction with the Business Combination, outstanding shares of GDI were converted into common stock of the Company, par value $0.0001 per share, shown as a recapitalization, and the net assets of ChaSerg were acquired at historical cost, with no goodwill or other intangible assets recorded. GDI was deemed to be the predecessor of the Company, and the consolidated assets and liabilities and results of operations prior to the Closing (for the years ended December 31, 2019 and 2018 and the period from January 1, 2020 to March 5, 2020) are those of GDI. ChaSerg’s assets and liabilities, which include net cash from the trust of $85.1 million, and results of operations were consolidated with GDI beginning on the Closing.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with guidance applicable to these circumstances, the equity structure has been restated in all comparative periods up to the Closing Date, to reflect the number of shares of the Company’s common stock, $0.0001 par value per share, issued to GDI shareholders in connection with the recapitalization transaction. As such, the shares and corresponding capital amounts and earnings per share related to GDI preferred and common stock prior to the Business Combination have been retroactively restated as shares reflecting the exchange ratio established in the Business Combination.</span></div> 0.0001 85100000 0.0001 <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Principles of consolidation</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying condensed financial statements include the accounts of the Company and all of its subsidiaries that are directly or indirectly owned or controlled. Intercompany transactions and balances have been eliminated upon consolidation.</span></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Use of estimates</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of the consolidated condensed financial statements in accordance with U.S. GAAP requires the Company to make estimates and assumptions that affect the amounts reported in the condensed consolidated financial statements and accompanying notes. Actual results could differ from these estimates and such differences could be material. Significant estimates include allowances for receivables, calculation of accrued liabilities, capitalization of internally developed software, stock-based compensation, contingent consideration payable, determination of fair value, useful lives and recoverability of intangible assets and goodwill, determination of provision for income taxes and uncertain tax positions.</span></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Certain significant risks and uncertainties</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company is subject to risks, including but not limited to customer concentration, concentrations of credit and foreign currency risks. Refer to the section below for additional information. Additionally, the Company has been impacted by the coronavirus (“COVID-19”) pandemic. The global pandemic of COVID-19 has negatively affected the U.S. and global economy, disrupted global supply chains, resulted in significant travel and transport restrictions, including mandated closures and orders to “shelter-in-place,” and created significant disruption of the financial market. In 2020 the COVID-19 pandemic impacted the Company’s revenues, and the Company’s business continues to be exposed to risks and uncertainties related to the pandemic. The impact of the COVID-19 pandemic had been more pronounced with the Company’s retail customers, which depended on keeping their stores open. Additionally, in situations where the Company’s customers encountered financial difficulties, there was a risk associated with the Company’s inability to collect money from customers. In 2020 the Company took several actions to deal with the COVID-19 pandemic. These included enabling its employees to work from home, company-wide salary and compensation cuts, hiring freezes, and suspending all non-essential travel. Some of these actions such as working from home as well as suspending all non-essential travel continues to be currently in place. As the Company's business recovered in 2021, the Company discontinued some of the cost saving measures such as compensation cuts and hiring freezes. The Company now is facing the opposite challenges including employee retention and shortage of talent on the job market. The ultimate impact and the extent to which the COVID-19 pandemic will continue to affect the business, results of operation and financial condition is difficult to predict and depends on numerous evolving factors outside of the Company’s control including: the duration and scope of the pandemic, including from renewed waves and new variants; government, social, business and other actions that have been and will be taken in response to the pandemic; and the effect of the pandemic on short and long-term general economic conditions.</span></div> Concentrations of credit risk and significant customersThe Company records its accounts receivable and unbilled receivables at their face amounts less allowances. Accounts receivable and unbilled receivables are generally dispersed across the Company’s customers in proportion to their revenue. Two customers individually exceeded 10% of the Company’s accounts receivable balance as of September 30, 2021 and three customers individually exceeded 10% of the Company’s accounts receivable balance as of December 31, 2020. Two customers individually exceeded 10% of the unbilled receivables as of September 30, 2021 and three customers individually exceeded 10% of the unbilled receivables as of December 31, 2020. Two customers individually accounted for greater than 10% of the sales for the three and nine months ended September 30, 2021 and 2020, respectively. 2 3 2 3 2 2 2 2 <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Cash and cash equivalents</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company considers cash equivalents to be highly liquid investments with original maturities of three months or less from the date of purchase. Cash equivalents are stated at cost, which approximates fair value. At times, cash deposits with banks may exceed federally insured limits.</span></div> Accounts receivable and allowance for doubtful accountsAccounts receivable, less allowance for doubtful accounts, reflect the net realizable value of receivables and approximate fair value. The Company maintains an allowance against accounts receivable for the estimated probable losses on uncollectible accounts. The allowance is based upon historical loss experience, current economic conditions within the industries the Company serves as well as determination of the specific risk related to certain customers. Accounts receivable are charged off against the reserve when, in management’s estimation, further collection efforts would not result in a reasonable likelihood of receipt. <table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:66.005%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">As of</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2020</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(in thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Trade accounts receivable</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">31,027 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">17,308 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Allowance for doubtful accounts</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(254)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(418)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total trade accounts receivable, net</span></td><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"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">30,773 </span></td><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"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><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"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">16,890 </span></td><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"/></tr></table> 31027000 17308000 254000 418000 30773000 16890000 Unbilled receivablesGenerally, the Company will not bill customers until the services have been completed. From time-to-time, a service period may overlap with a period-end and the unbilled receivables represent amounts for services performed through period-end, but not yet billed. The unbilled receivable represents the amount expected to be billed and collected for services performed through period-end in accordance with contract terms. 4900000 1800000 <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Goodwill</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill represents the excess of purchase price over the fair value of the net assets of businesses acquired. On an annual basis, the Company makes a qualitative assessment to determine if it is more likely than not that the fair value of the reporting unit is less than its carrying amount, including goodwill. If the Company determines that the fair value of the reporting unit is less than its carrying amount, it will perform a quantitative analysis; otherwise, no further evaluation is necessary. For the quantitative impairment assessment, the Company compares the fair value of the reporting unit to its carrying value, including goodwill. The Company uses the discounted cash flow method of the income approach and market approach to determine the fair value of the reporting unit. If the fair value of the reporting unit exceeds the carrying value of the net assets assigned to that unit, goodwill is not impaired, and no further testing is performed. If the carrying value of the net assets assigned to the reporting unit exceeds the fair value of the reporting unit, then the Company will recognize a loss equal to the excess, limited to the total amount of goodwill allocated to that reporting unit. Impairments, if any, are charged directly to earnings. As of September 30, 2021, the Company has a single reporting unit and determined there were no indicators of impairment.</span></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Intangible assets</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Finite-lived intangible assets are stated at cost less accumulated amortization. Amortization is computed on the straight-line basis over the asset’s useful lives ranging between 2 and 12 years. Intangible assets are evaluated for impairment whenever events or changes in circumstances indicate that the carrying value of the assets may not be fully recoverable. If facts and circumstances indicate that the carrying value might not be recoverable, projected undiscounted net cash flows associated with the related asset or group of assets over their estimated remaining useful lives is compared against their respective carrying amounts. If an asset is found to be impaired, the impairment charge will be measured as the amount by which the carrying amount of an entity exceeds its fair value. As of September 30, 2021, the Company determined there were no indicators of impairment.</span></div> P2Y P12Y <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue recognition</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company accounts for a contract with a customer when 1) the parties to the contract have approved the contract and are committed to performing their respective obligations, 2) the contract identifies each party’s rights regarding the goods or services to be transferred, 3) the contract identifies the payment terms for the goods or services to be transferred, 4) the contract has commercial substance, and 5) collection of substantially all consideration pursuant to the contract is probable.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company derives its revenue from offering a suite of digital engineering and information technology (“IT”) consulting services, including digital transformation strategy, emerging technology, lean labs and legacy system replatforming. For most contracts, the Company uses master agreements to govern the overall relevant terms and conditions of the business arrangement between the Company and its customers. When the Company and a customer enter into a Master Services Agreement (“MSA”), purchases are generally made by the customer via a statement of work (“SOW”) which explicitly references the MSA and specifies the services to be delivered. Fees for these contracts may be in the form of time-and-materials or fixed-fee arrangements. The majority of the Company’s revenues are generated under time-and-material contracts which are billed using hourly rates to determine the amounts to be charged directly to the customer. Fees are billed and collected as stipulated in the contract, and revenue is recognized as services are performed. If there is an uncertainty about the receipt of payment for the services, revenue is recognized to the extent that a significant reversal of revenue would not be probable.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consulting services revenue is a single performance obligation earned through a series of distinct daily services and may include services such as those described above. The Company recognizes revenue for services over time as the customer simultaneously receives and consumes the benefits as the Company performs IT consulting services. For revenue contracts, the customer derives value from the Company providing daily consulting services, and the value derived corresponds to the labor hours expended. Therefore, the Company measures the progress and recognizes revenue using an effort-based input method. For fixed fee contracts, the Company recognizes revenue as the work is performed, the monthly calculation of which is based upon actual labor hours incurred and level of effort expended throughout the duration of the contract.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For time-and-material contracts, the Company applies the variable consideration allocation exception. Therefore, instead of allocating the variable consideration to the entire performance obligation, the Company determined the variable consideration should be allocated to each distinct service to which the variable consideration relates, which is providing the customer daily consulting services. The Company also offers volume discounts or early settlement discounts. Volume discounts apply once the customer reaches certain contractual spend thresholds. Early settlement discounts are issued contingent upon the timing of the payment from the customer. If the consideration promised in a contract includes a variable amount, the Company only includes estimated amounts of consideration in the transaction price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. These estimates may require management to make subjective judgments and to make estimates about the effects of matters inherently uncertain. The determination of whether to constrain consideration in the transaction price are based on information (historical, current and forecasted) that is reasonably available to the Company, taking into consideration the type of customer, the type of transaction and the specific facts and circumstances of each arrangement. Although the Company believes that its approach in developing estimates and its reliance on certain judgments and underlying inputs is reasonable, actual results may differ from management’s estimates, judgments and assumptions. These estimates have historically not been material to the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Remaining performance obligation</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC 606 requires that the Company disclose the aggregate amount of transaction price that is allocated to performance obligations that have not yet been satisfied as of September 30, 2021. This disclosure is not required for:</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">contracts with an original duration of one year or less, including contracts that can be terminated for convenience without a substantive penalty,</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">contracts for which the Company recognizes revenues based on the right to invoice for services performed,</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">variable consideration allocated entirely to a wholly unsatisfied performance obligation or to a wholly unsatisfied promise to transfer a distinct good or service that forms part of a single performance obligation in accordance with ASC 606-10-25-14(b), for which the criteria in ASC 606-10-32-40 have been met, or</span></div><div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">variable consideration in the form of a sales-based or usage-based royalty promised in exchange for a license of intellectual property.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All of the Company’s contracts met one or more of these exemptions as of September 30, 2021.</span></div> Stock-based compensation expenseStock-based compensation expense is measured based on the grant-date fair value of the share-based awards. Forfeitures are recognized as incurred. The Company estimates stock options grant-date fair value using the Black-Scholes-Merton option pricing model. The model requires management to make a number of key assumptions including expected volatility, expected term, risk-free interest rate, and expected dividends. The Company evaluates the assumptions used to value its share-based awards on each grant date. The fair market value of Grid Dynamics stock is determined based on the closing price on NASDAQ on the measurement date. The Company amortizes the grant-date fair value of all share-based compensation awards over the employee’s requisite service period for the entire award on a straight-line basis, which is generally the vesting period. For an award with graded vesting that is subject only to a service condition (e.g., time-based vesting), the Company uses the straight-line attribution method under ASC 718 under which they recognize compensation cost on a straight-line basis over the total requisite service period for the entire award (i.e., over the requisite service period of the last separately-vesting tranche of the award). Additionally, the Company applies the “floor” concept so that the amount of compensation cost that is recognized as of any date is at least equal to the grant-date fair value of the vested portion of the award on that date. That is, if the straight-line expense recognized to date is less than the grant date fair value of the award that is legally vested at that date, the company will increase its recognized expense to at least equal the fair value of the vested amount. <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Income taxes</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company follows the asset and liability method of accounting for income taxes. Under this method, deferred income taxes are recognized for the tax consequences of temporary differences between the financial statement carrying amounts and the tax basis of the assets and liabilities. The determination of the provision for income taxes requires significant judgment, the use of estimates and the interpretation and application of complex tax laws. The provision for income taxes reflects a combination of income earned and taxed in the various U.S. federal and state, international and other jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for tax contingencies or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective tax rate.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In assessing the realizability of deferred tax assets, management considers whether it is more likely than not that some portion, or all, of the deferred tax assets will not be realized. Management considers all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes prior earnings history, the scheduled reversal of deferred tax liabilities, projected future taxable income, carryback and carryforward periods of tax attributes, and tax planning strategies that could potentially enhance the likelihood of realization of a deferred tax asset in making this assessment. The weight given to the positive and negative evidence is commensurate with the extent to which the evidence may be objectively verified.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company evaluates for uncertain tax positions at each balance sheet date. When it is more likely than not that a position will be sustained upon examination by a tax authority that has full knowledge of all relevant information, the Company measures the amount of tax benefit from the position and records the largest amount of tax benefit that is greater than 50% likely of being realized after settlement with a tax authority. The Company’s policy for interest and/or penalties related to underpayments of income taxes is to include interest and penalties in income tax expense.</span></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes to U.S. GAAP are established by the Financial Accounting Standards Board (the “FASB”), in the form of Accounting Standards Updates (“ASUs”), to the FASB’s ASC. The Company has elected not to opt out of the extended transition period and thus when a standard is issued or revised and it has different application dates for public or private companies, the Company, as an emerging growth company, can adopt the new or revised standard at the time private companies adopt the new or revised standard.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2019, the FASB issued Accounting Standard Update No. 2019-12, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">(Topic 740):</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Simplifying the Accounting for Income Taxes</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> (ASU 2019-12), which simplifies the accounting for income taxes by removing certain exceptions to the general principles and also simplification of areas such as franchise taxes, step-up in tax basis goodwill, separate entity financial statements and interim recognition of enactment of tax laws or rate changes. The update is effective for fiscal years and interim periods within those fiscal years beginning after December 15, 2020, and early adoption is permitted. The Company adopted the standard as of January 1, 2021 and has determined that the adoption of this guidance did not have a material effect on the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recently issued accounting pronouncements</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company considered the applicability and impact of all ASUs. ASUs not listed below were assessed and determined to be either not applicable or are expected to have minimal impact on the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In February 2016, the FASB issued ASU No. 2016-2, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Leases</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. ASU 2016-2 requires lessees to put most leases on their balance sheet while recognizing expense in a manner similar to existing accounting. ASU 2016-2 states that a lessee would recognize a lease liability for the obligation to make lease payments and a right-to-use asset for the right to use the underlying asset for the lease term. The standard allows for two methods of adoption to recognize and measure leases: retrospectively to each prior period presented in the financial statements with the cumulative effect of initially applying the guidance recognized at the beginning of the earliest comparative period presented or retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. Both adoption methods include a number of optional practical expedients that entities may elect to apply. The Company will adopt the standard retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. The new accounting guidance is effective for the Company for fiscal periods beginning after December 15, 2021. The Company expects the impact to be material but has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2016, the FASB issued ASU 2016-13, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments-Credit Losses (Topic 326) — Measurement of Credit Losses on Financial Instruments</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Topic 326 was subsequently amended by ASU 2019-4, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements to Topic 326, Financial Instruments — Credit Losses,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> ASU 2019-5, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments — Credit Losses (Topic 326): Targeted Transition Relief,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and clarified the guidance with the release of ASU 2020-2 </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments—Credit Losses (Topic 326)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Leases (Topic 842).</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> These ASUs replace the current incurred loss impairment methodology with a methodology that reflects expected credit losses measured at amortized cost and certain other instruments, including loans, held-to-maturity debt securities, net investments in leases, and off-balance sheet credit exposures. The update is effective for fiscal years beginning after December 15, 2022, and interim periods with fiscal years after December 15, 2022. The Company has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, FASB issued ASU No. 2020-3, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification to Financial Instruments.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> This ASU improves and clarifies various financial instruments topics, including the current expected credit losses standard issued in 2016. The ASU includes seven different issues that describe the areas of improvement and the related amendments to U.S. GAAP, intended to make the standards easier to understand and apply by eliminating inconsistencies and providing clarifications. The amendments related to Issue 1, Issue 2, Issue 3, Issue 4, and Issue 5 were effective upon issuance of this update. The new guidance did not have a material impact on the consolidated financial statements. The amendments related to Issue 6 and Issue 7 are effective for the Company the earlier of January 1, 2023 or when the Company adopts ASU 2016-13, if early adopted. The Company is currently evaluating the impact these topics will have on the consolidated financial statements.</span></div> Business combination<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 5, 2020, ChaSerg consummated its business combination with GDI pursuant to the Merger Agreement. Immediately following the Business Combination, there were 50.8 million shares of common stock with a par value of $0.0001, and 11.3 million warrants outstanding.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">GDI began operations in September 2006 to provide next-generation e-commerce platform solutions in the areas of search, analytics, and release automation to Fortune 1000 companies. Under ASC 805, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Business Combinations,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> GDI was deemed the accounting acquirer, and the Business Combination was accounted for as a reverse recapitalization, with no goodwill or other intangible assets recorded in accordance with U.S. GAAP. ChaSerg was treated as the “acquired” company for financial reporting purposes. Accordingly, for accounting purposes, the Business Combination was treated as the equivalent of GDI issuing stock for the net assets of ChaSerg, accompanied by a recapitalization. The net assets of ChaSerg were stated at historical cost, with no goodwill or other intangible assets recorded. Reported shares and earnings per share available to holders of the Company’s common stock, prior to the Business Combination, have been retroactively restated as shares reflecting the exchange ratio established in the Business Combination (approximately 1.685 GDH shares to 1.0 GDI share).</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The aggregate consideration for the Business Combination was $396.5 million, consisting of $130.0 million in cash and 27.0 million shares of ChaSerg’s common stock valued at $10.19 per share, less a post-Closing share adjustment amount of 0.9 million shares which were placed in escrow post-Closing. The shares transferred at Closing included 4.3 million options to purchase the Company’s shares that were vested, outstanding and unexercised, which were determined using 1.7 million vested options at Closing converted at an exchange ratio of approximately 2.48. Additionally, 0.4 million options to purchase the </span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Company’s common stock that were unvested, outstanding and unexercised were assumed by the Company, which were determined using 0.1 million unvested options at Closing converted at an exchange ratio of approximately 2.48. The following represents the aggregate consideration for the Business Combination ( in thousands except for per share amount):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:86.162%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shares transferred at Closing</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">27,006 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Less: Post-Closing share adjustment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(857)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total shares transferred at Closing</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">26,149 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Value per share</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10.19 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total share consideration</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">266,459 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Plus: Cash transferred to GDI stockholders</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">130,000 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Closing merger consideration</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">396,459 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the Closing, 0.1 million shares of common stock were redeemed at a price per share of approximately $10.21.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the Business Combination, the Company incurred direct and incremental costs of approximately $4.7 million, consisting of legal and professional fees, of which $4.1 million were related to equity issuance costs and recorded to additional paid-in capital as a reduction of proceeds and $0.6 million were recorded to general and administrative expenses.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the Business Combination, all outstanding retention bonus obligations from a 2017 acquisition totaling $3.4 million were accelerated and paid in full to Grid Dynamics’ personnel immediately prior to the Closing and were recorded in cost of revenue and operating expenses in the consolidated financial statements.</span></div> 50800000 0.0001 11300000 1.685 396500000 130000000 27000000 10.19 900000 4300000 1700000 2.48 400000 100000 2.48 The following represents the aggregate consideration for the Business Combination ( in thousands except for per share amount):<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:86.162%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shares transferred at Closing</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">27,006 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Less: Post-Closing share adjustment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(857)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total shares transferred at Closing</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">26,149 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Value per share</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10.19 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total share consideration</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">266,459 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Plus: Cash transferred to GDI stockholders</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">130,000 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Closing merger consideration</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">396,459 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 27006000 857000 26149000 10.19 266459000 130000000 396459000 100000 10.21 4700000 4100000 600000 3400000 Acquisition of Tacit Knowledge Inc.<div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 29, 2021, the Company acquired 100% of the equity interest of the global consultancy company Tacit Knowledge Inc. (“Tacit”). Founded in 2002, Tacit is a global provider of digital commerce solutions, serving customers across the UK, North America, Continental Europe, and Asia. The acquisition of Tacit added approximately 180 employees to the Company's headcount. The acquisition will augment the Company's service offerings and will strengthen its competitive position within the market. Additionally, the acquisition will also enable the Company to leverage near-shore capabilities with Tacit’s presence in Mexico.</span></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total purchase consideration is $37.0 million and consists of cash consideration of $33.6 million paid at closing and fair value of the contingent consideration at the date of the acquisition of $3.4 million. The maximum amount of potential contingent cash consideration is $5.0 million. The contingent consideration is payable based on revenue and EBITDA metrics to be achieved by Tacit within 12 months. The Company recorded a liability for the contingent consideration amount based on the Company’s best estimate of the fair value of the expected payout.</span></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The primary areas of the preliminary purchase price allocations that have not been finalized relate to the finalization of working capital, the valuation and useful lives of intangible assets, the valuation of the contingent consideration ("earn-out"), and the deferred tax liabilities. Upon completion of the fair value assessment, the Company anticipates that the ultimate intangible assets may differ from the preliminary assessment outlined above. Any change in the finalization of working capital will reduce or increase the cash consideration. Any changes to the preliminary estimates of the fair value of the and intangible assets or contingent consideration ("earn-out") will be adjusted to goodwill during the measurement period, with subsequent changes in estimates recorded in the Company’s Consolidated Statements of Loss and Comprehensive Loss.</span></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price of Tacit has been preliminarily allocated to the assets acquired and liabilities assumed based on their estimated respective fair values as of May 29, 2021 with the excess purchase price allocated to goodwill. The Company’s preliminary allocation of the purchase price to the net tangible and intangible assets acquired and liabilities assumed is as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:85.430%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair market values</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current assets (including $2,967 of cash)</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,145 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">466 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,737 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tradename</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,176 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,603 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total assets acquired</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">43,127</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable and accrued expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,675)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred taxes</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,500)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total liabilities assumed</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(6,175)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Purchase price allocation</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">36,952</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preliminary fair value of identifiable intangible assets as of the date of acquisition is as follows:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:58.490%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.640%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(In thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Useful Life</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortization<br/>method</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,737 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12 years</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Straight-line</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tacit tradename</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,176 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4 years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accelerated</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Total identified intangible assets</span></td><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,913</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the acquisition, the Company recognized a total of $20.6 million of goodwill. The purchase price was assigned to assets acquired and liabilities assumed based on their estimated fair values as of the date of acquisition, and any excess was allocated to goodwill, as shown in the table above. Goodwill represents the value the Company expects to achieve through the implementation of operational synergies and growth opportunities as the Company expands its global reach. The goodwill is not deductible for income tax purposes. </span></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company used various valuation techniques to determine fair value, with the primary techniques being discounted cash flow analysis, relief-from-royalty, and multi-period excess earnings valuation approaches, which use significant unobservable inputs, or Level 3 inputs, as defined by the fair value hierarchy. Under these valuation approaches, the Company is required to make estimates and assumptions about sales, operating margins, growth and attrition rates, royalty rates and discount rates based on budgets, business projections, anticipated future cash flows, and marketplace data.</span></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The acquisition of Tacit was accounted for using the acquisition method of accounting, and consequently, the results of operations for Tacit are reported in the consolidated financial statements from the date of acquisition. Tacit revenue was approximately $9.5 million and net income was approximately $1.7 million from the date of acquisition to September 30, 2021. </span></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following unaudited pro forma information presents the combined results of operations as if the acquisition of Tacit had occurred at the beginning of 2020. Tacit pre-acquisition results have been added to the Company’s historical results. The pro forma results contained in the table below include adjustment for amortization of acquired intangibles. Any potential cost savings or other operational efficiencies that could result from the acquisition are not included in these pro forma results. </span></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The 2021 pro forma results include transaction related expenses incurred by the Company prior to the acquisition of $0.6 million including items such as consultant fees and other deal costs.</span></div><div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These pro forma results have been prepared for comparative purposes only and are not necessarily indicative of the results of operations as they would have been had the acquisitions occurred on the assumed dates, nor are they necessarily an indication of future operating results.</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:71.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.639%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(Unaudited)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">152,775 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">92,462 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss</span></td><td colspan="3" style="padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,304)</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,156)</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted loss per share</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.04)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 1 180 37000000 33600000 3400000 5000000 P12M The Company’s preliminary allocation of the purchase price to the net tangible and intangible assets acquired and liabilities assumed is as follows (in thousands):<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:85.430%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair market values</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current assets (including $2,967 of cash)</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,145 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">466 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,737 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tradename</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,176 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,603 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total assets acquired</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">43,127</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable and accrued expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,675)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred taxes</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,500)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total liabilities assumed</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(6,175)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Purchase price allocation</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">36,952</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 2967000 9145000 466000 11737000 1176000 20603000 43127000 3675000 2500000 6175000 36952000 <div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preliminary fair value of identifiable intangible assets as of the date of acquisition is as follows:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:58.490%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.640%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(In thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Useful Life</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortization<br/>method</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,737 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12 years</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Straight-line</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tacit tradename</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,176 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4 years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accelerated</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Total identified intangible assets</span></td><td colspan="3" style="padding:0 1pt"/><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,913</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div> 11737000 P12Y 1176000 P4Y 12913000 20600000 9500000 1700000 600000 <div style="margin-top:10pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These pro forma results have been prepared for comparative purposes only and are not necessarily indicative of the results of operations as they would have been had the acquisitions occurred on the assumed dates, nor are they necessarily an indication of future operating results.</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:71.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.639%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(Unaudited)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">152,775 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">92,462 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss</span></td><td colspan="3" style="padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,304)</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,156)</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted loss per share</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.04)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.19)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 152775000 92462000 -2304000 -8156000 -0.04 -0.19 Property and equipment, net<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment consist of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.222%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.640%"/><td style="width:0.1%"/></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Estimated<br/>Useful<br/>Life<br/>(In Years)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">As of</span></td></tr><tr style="height:36pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Computers and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2-5</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">9,241 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">6,447 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Machinery and automobiles</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">631 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">551 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Furniture and fixtures</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3-7</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1,012 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">643 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">513 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">554 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Leasehold improvements</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3-12</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">526 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">236 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">11,923 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8,430 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Less: Accumulated depreciation and amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(7,798)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(5,622)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,125 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2,809 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Capitalized software development costs</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2-3</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,394 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3,531 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Less: Accumulated amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(3,124)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2,245)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1,270 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1,287 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5,395 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,095 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment consist of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.222%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.640%"/><td style="width:0.1%"/></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Estimated<br/>Useful<br/>Life<br/>(In Years)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">As of</span></td></tr><tr style="height:36pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Computers and equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2-5</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">9,241 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">6,447 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Machinery and automobiles</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">631 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">551 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Furniture and fixtures</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3-7</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1,012 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">643 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">513 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">554 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Leasehold improvements</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3-12</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">526 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">236 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">11,923 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8,430 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Less: Accumulated depreciation and amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(7,798)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(5,622)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,125 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2,809 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Capitalized software development costs</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2-3</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,394 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3,531 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Less: Accumulated amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(3,124)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2,245)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1,270 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1,287 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5,395 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,095 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> P2Y P5Y 9241000 6447000 P5Y 631000 551000 P3Y P7Y 1012000 643000 P5Y 513000 554000 P3Y P12Y 526000 236000 11923000 8430000 7798000 5622000 4125000 2809000 P2Y P3Y 4394000 3531000 3124000 2245000 1270000 1287000 5395000 4095000 Intangible assets, net<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets consist of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.133%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.911%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Estimated<br/>Useful Life<br/>(In Years)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">As of</span></td></tr><tr style="height:26pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customer relationships</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8-12</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">15,971 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,234 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tradename</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4-10</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,676 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3,500 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Non-compete agreements</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">440 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">440 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21,087 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8,174 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Less: Accumulated amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1,358)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(49)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets, net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">19,729 </span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8,125 </span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets consist of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.133%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.911%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Estimated<br/>Useful Life<br/>(In Years)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">As of</span></td></tr><tr style="height:26pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customer relationships</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8-12</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">15,971 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,234 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tradename</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4-10</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4,676 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3,500 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Non-compete agreements</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">440 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">440 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21,087 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8,174 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Less: Accumulated amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1,358)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(49)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets, net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">19,729 </span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8,125 </span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> P8Y P12Y 15971000 4234000 P4Y P10Y 4676000 3500000 P2Y 440000 440000 21087000 8174000 1358000 49000 19729000 8125000 Other current liabilities<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components of other current liabilities were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:72.692%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.639%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">As of</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">September 30, 2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer deposits</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">781 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">731 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,068 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">528 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contingent consideration payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,926 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,947 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total other current liabilities</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,775 </span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,206 </span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Daxx Web Industries B.V.("Daxx") on December 14, 2020, the Company recorded a contingent consideration payable, which is a post-closing earn-out consideration, estimated based on fair value of $1.9 million. During the third quarter of 2021 the Company made an adjustment to the fair value of the earn-out consideration that resulted in recognition of $0.4 million of income that was classified as Other income/(expenses), net in unaudited condensed consolidated statement of loss and comprehensive loss. In connection with the acquisition of Tacit on May 29, 2021, the Company recorded a contingent consideration payable, which is a post-closing earn-out consideration, estimated based on fair value of $3.4 million. </span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of September 30, 2021 the Company had payable to one of its related parties in the amount of $1.1 million that was classified as Other current liabilities in unaudited condensed consolidated balance sheet.</span></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components of other current liabilities were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:72.692%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.639%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">As of</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">September 30, 2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer deposits</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">781 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">731 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,068 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">528 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contingent consideration payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,926 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,947 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total other current liabilities</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,775 </span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,206 </span></td><td style="background-color:#ffffff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 781000 731000 2068000 528000 4926000 1947000 7775000 3206000 1900000 400000 3400000 1100000 Income taxesThe Company recorded income tax expense of $2.6 million and income tax benefit of $(0.1) million for the three months ended September 30, 2021 and 2020, respectively. The Company’s effective tax rate was 126.3% and 8.1% for the three months ended September 30, 2021 and 2020, respectively. The increase in effective tax rate for the three months ended September 30, 2021, as compared to the same periods in 2020 was attributable mainly to Section 162 (m) compensation deduction limitations partially offset by stock-based compensation excess tax benefit. The Company recorded income tax expense of $4.7 million and income tax benefit of $(3.6) million for the nine months ended September 30, 2021 and 2020, respectively. The Company’s effective tax rate was 829.8% and 31.3% for the nine months ended September 30, 2021 and 2020, respectively. The increase in effective tax rate for the nine months ended September 30, 2021, as compared to the same periods in 2020 was attributable mainly to Section 162 (m) compensation deduction limitations partially offset by stock-based compensation excess tax benefit. Additionally, the United Kingdom’s (“UK”) recently enacted Finance Act 2021 has increased its corporate tax rate to 25% for companies with profits exceeding 250,000 pounds, effective beginning April 1, 2023. As a result of this change in tax law, the Company remeasured its UK deferred taxes which resulted in a $0.5 million discrete tax expense in the nine months ended September 30, 2021. For the three and nine months ended September 30, 2021, the Company used a discrete effective tax rate method to calculate income taxes due to sensitivity of the forecast. Through June 30, 2021, the Company determined that small changes in estimated “ordinary” income would result in significant changes in the estimated annual effective tax rate causing material distortion in the year-to-date tax provision. As of September 30, 2021, the Company is unable to produce a reliable estimate of ordinary income for the quarter and year ending 2021 due to the inability to reliably or accurately forecast fourth quarter 2021 operating expenses. Similarly, for the three and nine months ended September 30, 2020, due to uncertainties created by the COVID-19 pandemic, the Company’s estimated annual effective tax rate method would not provide a reliable estimate and therefore was not used. 2600000 -100000 1.263 0.081 4700000 -3600000 8.298 0.313 500000 Stockholders’ equity<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following description summarizes the material terms and provisions of the securities that the Company has authorized.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Common stock</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company is authorized to issue 110.0 million shares of common stock. At Closing, March 5, 2020, the Company had issued 50.8 million shares of common stock. As of September 30, 2021 the Company had 65.1 million shares of common stock that were outstanding.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On July 6, 2021, the Company concluded a follow-on public offering of 11.6 million shares of its common stock, which included 5.5 million shares offered by Grid Dynamics and 6.1 million shares offered by certain selling stockholders, at a price </span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">to the public of $15.03 per share. These amounts included shares sold upon exercise in full of the underwriters' option to purchase additional shares. J.P. Morgan Securities, LLC, William Blair &amp; Company, L.L.C. and Cowen and Company, LLC acted as joint book-running managers for the offering. Needham &amp; Company, LLC and Cantor Fitzgerald &amp; Co. acted as co-managers for the offering. The net proceeds from this offering for the company, after deducting underwriting discounts and commissions and estimated offering expenses, were $78.3 million. The Company did not receive any proceeds from the sale of the shares by the selling stockholders.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Preferred Stock</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2019 GDI had 1.0 million shares of no par value shares of preferred stock outstanding convertible on a 1:1 basis with GDI’s common stock. At the Closing, the preferred stock outstanding was converted into common stock of the Company, par value $0.0001 per share.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Founders and underwriter shares subject to earnout provisions</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the Closing, the Company had 1.2 million shares of common stock issued and outstanding subject to earnout provisions (the “Earnout Shares”). The Earnout Shares were subject to transfer restrictions and the owners of the Earnout Shares could not sell, transfer, or otherwise dispose of their respective shares until the respective earnout provisions were achieved as described further below. The Earnout Shares have full ownership rights including the right to vote and receive dividends and other distributions thereon. Dividends and other distributions are not subject to forfeiture in accordance with the Amended and Restated Sponsor Share Letter filed with the SEC on January 26, 2020. The Earnout Shares were eligible to vest and were no longer subject to the transfer restrictions as follows:</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">399,999; 400,000; and 400,001 Earnout Shares would vest if the closing price of the Company’s common stock on the principal exchange on which the securities are listed or quoted have been at or about $12.00; $13.50; and $15.00 per share, respectively, for 20 trading days (which need not be consecutive) over a <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjYzMDI3OGNiYzA4ZDQ4ZDRiNjk1MzQyNWMwOTI2MGZiL3NlYzo2MzAyNzhjYmMwOGQ0OGQ0YjY5NTM0MjVjMDkyNjBmYl81OC9mcmFnOmJlZGY3MmVmYjA4MzRjZjdiMDgxZWFiNGZkOTNlMzA1L3RleHRyZWdpb246YmVkZjcyZWZiMDgzNGNmN2IwODFlYWI0ZmQ5M2UzMDVfMjE5OTAyMzI2MTIwMA_0acc06f2-8a0b-4f03-8f3e-3be1b6b850fc">thirty</span>-trading day period at any time.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2020, none of the Earnout Shares were vested. On January 20, 2021, 399,999 Earnout Shares vested and are no longer subject to transfer restrictions. On March 2, 2021, 400,000 Earnout Shares vested and are no longer subject to transfer restrictions. On March 29, 2021, 400,001 Earnout Shares vested and are no longer subject to transfer restrictions. Accordingly, as of March 29, 2021, all of the Earnout Shares have vested.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Warrants</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On April 12, 2021, the Staff of the SEC issued the “Staff Statement on Accounting and Reporting Considerations for Warrants Issued by Special Purpose Acquisition Companies (“SPACs”)” (the “Staff Statement”). The Staff Statement provided new guidance for all SPAC-related companies regarding the accounting and reporting for their warrants that could result in the warrants issued by SPACs being classified as a liability measured at fair value, with non-cash fair value adjustments reported in earnings at each reporting period. The Company reviewed the accounting for both its public warrants and private warrants following the Staff Statement. The Company determined that the accounting for its public warrants as equity was consistent with the Staff Statement. The Company determined that its private warrants should be accounted for as liabilities but that the related accounting errors during the year ended December 31, 2020 were not material to the required financial statements and disclosures included in its annual report on Form 10-K filed on March 5, 2021. In the three months ended March 31, 2021, the Company began accounting for the private warrants correctly, as disclosed in its quarterly report on Form 10-Q filed on May 6, 2021. During the second and third quarter of 2021, all remaining private warrants were exchanged to common stock.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">From July 23, 2021 to July 26, 2021, 1.4 million public warrants were exercised with cash proceeds of $16.4 million. On July 28, 2021, the Company announced the redemption of its 2.8 million then outstanding public warrants. Any public warrants not exercised prior to 5:00 p.m., New York City time, on August 30, 2021 were redeemed at that time for $0.01 per warrant. The public warrants were exercisable at a price of $11.50 per share. Of the total of 2.8 million warrants outstanding on July 28, 2021, 2.75 million were exercised and cash proceeds generated from these exercised warrants were approximately $31.7 million. Pursuant to the terms of the agreements governing the rights of the holders of the public warrants, the Company redeemed the remaining unexercised and outstanding 19,744 public warrants on August 30, 2021 for a redemption price of $0.01 per public warrant. </span></div>As of September 30, 2021, there were no outstanding private or public warrants. 110000000 50800000 65100000 11600000 5500000 6100000 15.03 78300000 0 1000000 0 1 0.0001 1200000 399999 400000 400001 12.00 13.50 15.00 P20D 0 399999 400000 400001 1400000 16400000 2800000 0.01 11.50 2800000 2750000 31700000 19744 0.01 0 0 Stock-based compensation<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2018 Stock Plan</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">GDI had previously adopted a stock plan in 2018 (the “2018 Stock Plan”). Under the terms of the 2018 Stock Plan, certain option grants were accelerated in full or by an additional 12 months as a result of the Business Combination. Therefore, on the date of Closing, the acceleration of vesting for 2.6 million stock options resulted in a stock compensation charge and corresponding increase to additional paid-in capital of $2.5 million. Additionally, at Closing, a percentage of outstanding vested GDI stock options were settled in exchange for cash consideration, pursuant to the terms of the Merger Agreement.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The remaining portion of outstanding vested options totaling 1.7 million and all unvested options totaling 0.1 million were automatically assumed and converted into options to purchase the Company’s common stock as of the Closing. The number of each participant’s assumed options and the exercise price were adjusted as provided in the Merger Agreement. There was no incremental compensation cost attributable to the incremental fair value of the modified options compared to the original options on the modification date. The assumed stock options will continue to be subject to the same terms and conditions, including vesting schedule terms, in accordance with the 2018 Stock Plan. Exercise prices for 2018 Stock Plan options range between $3.51 and $3.54 per share.</span></div><div style="margin-top:12pt;text-align:justify"><span><br/></span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth the activity for the 2018 Stock Plan, including the conversion of the vested and unvested options, for the nine months ended September 30, 2021:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:86.162%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Options<br/>Outstanding, in thousands</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at December 31, 2019</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,734 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cashed out</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(829)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(19)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at March 31, 2020 (prior to exchange ratio conversion)</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,887 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Converted vested balance</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,314 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Converted unvested balance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">364 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at March 6, 2020 (post to exchange ratio conversion)</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,678 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised in 2020</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(28)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited/Cancelled in 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(50)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options Outstanding as of December 31, 2020</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,600 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised in quarter ended March 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(37)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited/Cancelled in quarter ended March 31, 2021</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(11)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options Outstanding as of March 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,552 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised in quarter ended June 30, 2021</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(257)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited/Cancelled in quarter ended June 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options Outstanding as of June 30, 2021</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,291 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised in quarter ended September 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(687)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited/Cancelled in quarter ended September 30, 2021</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options Outstanding as of September 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,603 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of September 30, 2021, a total of 0.07 million shares were forfeited, and 1.01 million shares were exercised for the total proceeds of $2.1 million in cash and 0.25 million shares net withheld for exercise price and taxes. The number of shares exercisable as of September 30, 2021 was 3.5 million with the average exercise price $3.54 per share. The intrinsic value of the 3.6 million total outstanding shares of 2018 Plan Options as of September 30, 2021, was $92.5 million with the remaining contractual term of 7.23 years. The unrecognized compensation expenses related to 2018 Plan options as of September 30, 2021 was $0.2 million, net of forfeitures, to be expensed on a straight-line basis over 1.93 years.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2020 Equity Incentive Plan</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective March 5, 2020, our board of directors approved an equity incentive plan (the “2020 Plan”). The 2020 Plan permits the Company to grant a maximum aggregate amount of 16.3 million Incentive Stock Options, Non-Statutory Stock Options (“NSOs”), Restricted Stock, Restricted Stock Units (“RSUs”), Stock Appreciation Rights, Performance Units (“PSUs”), and Performance Shares (“PSAs”) (collectively, the “Awards”) to employees, directors, and consultants of the Company. Our board of directors or any committee appointed by the board has the authority to grant Awards. During the quarter ended September 30, 2021, our board of directors granted 0.32 million NSOs and 0.04 million RSUs. The following table represent the number of shares available for grants from 2020 Equity Incentive Plan (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:86.162%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Available<br/>for grant</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Available for grant, December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,881 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(546)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSU granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">PSU granted (100% target)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(566)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options, RSUs, and PSUs forfeited</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">669 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Traded for taxes (returned to the pool)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,513 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Available for grant, September 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,904 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock Options</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total of 0.32 million NSOs shares granted during the quarter ended September 30, 2021 from 2020 Equity Incentive Plan are subject to the following time-based vesting conditions: one-fourth of the NSOs will vest on one year after the grant date; and thereafter one-sixteenth of the NSOs will vest each subsequent three-month anniversary. The NSOs have a 10-year expiration term, and once the NSOs are vested, the recipients have the right to purchase the Company’s stock at a fixed exercise price.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The grant date fair value of each NSO was estimated on the date of grant using the Black-Scholes-Merton option pricing model. The key assumptions for 2021 grants are provided in the following table.</span></div><div style="margin-top:12pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:74.192%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:23.608%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dividend yield</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.87 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected term in years</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.11</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Grant date fair value of common stock</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18.60 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company used a zero percent dividend yield assumption for all Black-Scholes-Merton stock option-pricing calculations. Since the Company’s shares were not publicly traded prior to the Closing and its shares were rarely traded privately, expected volatility is estimated based on the average historical volatility of similar entities with publicly traded shares. The risk-free rate for the expected term of the options is based on the U.S. Treasury yield curve at the date of grant. Expected term is estimated using the simplified method, which takes into account vesting and contractual term. The simplified method is being used to calculate expected term instead of historical experience due to a lack of relevant historical data resulting from changes in option vesting schedules and changes in the pool of employees receiving option grants. </span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes option activity for the nine months ended September 30, 2021 (shares in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.222%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.640%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Price </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:700;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">(1)</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:700;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">(2)</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options outstanding as of December 31, 2020 (2020 Plan)</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,942 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.38 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.22</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">546 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18.60 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(102)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.20 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options forfeited</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(345)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.67 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options outstanding as of September 30, 2021 (2020 Plan)</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,041 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11.08 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.85</span></td></tr></table></div><div style="margin-top:12pt;padding-left:18pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:6.34pt">Represents the weighted average exercise price</span></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:6.34pt">Represents weighted average remaining contractual term </span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">0.49 million shares of 2020 NSO grants were vested and outstanding as of September 30, 2021. The aggregated fair value of 0.55 million NSOs granted during the nine months ended September 30, 2021 was $4.0 million or $7.35 per share. The intrinsic value of the 2.0 million total outstanding shares of 2020 Plan Options as of September 30, 2021, was $37.0 million. The total unrecognized compensation expenses related to 2020 Stock Plan options as of September 30, 2021 was $6.9 million to be expensed on a straight-line basis over the remaining 2.97 years.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Units</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The RSUs granted to employees generally are subject to the following time-based vesting conditions: one-fourth vest on the first anniversary of the grant; and thereafter one-sixteenth of the RSUs will vest each subsequent three-month anniversary. RSUs granted do not participate in earnings, dividends, and do not have voting rights until vested. RSUs granted to the Board in lieu of the quarterly payments vest immediately.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the quarter ended September 30, 2021, approximately 0.08 million shares were issued upon vesting of the RSUs to the executives and 0.08 million shares were withheld to cover $2.1 million of employees’ tax obligations. The following table summarizes RSU activity for the nine months ended September 30, 2021(in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:86.162%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs outstanding as of December 31, 2020 (2020 Plan)</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,996 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs granted</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">47 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs released</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,068)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSU forfeited</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(291)</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs outstanding as of September 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,683 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total unrecognized compensation expenses related to 2020 Stock Plan RSUs as of September 30, 2021 was $13.6 million to be expensed on a straight-line basis over 1.9 years.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance Stock Units</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On March 2, 2021, the Company granted 0.5 million Performance Stock target shares under the 2020 Stock Plan with the maximum payout capped at 300%. The performance goals for these grants consist of:</span></div><div style="margin-top:12pt;padding-left:45pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">Year-over-year growth in non-retail revenue for the Performance Period, which is Fiscal Year 2021, expressed as a percentage increase over the fiscal year 2020 non-retail revenue (“Revenue Growth”), and</span></div><div style="margin-top:12pt;padding-left:45pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">Contribution Margin for the Performance Period as a percentage of Non-Retail revenue for the Performance Period.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fifty percent (50%) of the target number of performance shares granted will vest (if at all) based on the extent of achievement of Revenue Growth for the Performance Period and the remaining fifty percent (50%) of the target number of performance shares granted will vest (if at all) based on the extent of achievement of the Contribution Margin.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additionally, 0.02 million shares of PSU were granted on June 16th, 2021, per a consulting agreement with a former executive with the performance goals being consistent with those described above.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Performance shares will be certified and vested no later than March 1, 2022 with the payout shortly after. As of September 30, 2021, the Company assessed the vesting of the Performance Share Units as probable and the payout is estimated at 272% of the target goal. Stock-based compensation expense related to Performance Stock Units granted in 2021 was $13.1 million for the nine months ended September 30, 2021. The unrecognized expense for PSUs as of September 30, 2021, was $9.7 million.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock-Based Compensation Expense</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company classifies awards issued under the stock-based compensation plans as equity. Total compensation expense for the three months ended September 30, 2021 and 2020 was $9.1 million and $5.1 million respectively. Employee stock-based compensation recognized was as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:46.122%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Three months ended September 30, 2021</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Nine months ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">173 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">433 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">740 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Engineering, research, and development</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">799 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">621 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,970 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,678 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sales and marketing</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">963 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">808 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,207 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,545 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">General and administrative</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,178 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,631 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,849 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,621 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total stock-based compensation</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,113 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,126 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,459 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,584 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of September 30, 2021, there was approximately $30.3 million of unrecognized stock-based compensation expense.</span></div> 2600000 2500000 1700000 100000 3.51 3.54 <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth the activity for the 2018 Stock Plan, including the conversion of the vested and unvested options, for the nine months ended September 30, 2021:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:86.162%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Options<br/>Outstanding, in thousands</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at December 31, 2019</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,734 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cashed out</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(829)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(19)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at March 31, 2020 (prior to exchange ratio conversion)</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,887 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Converted vested balance</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,314 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Converted unvested balance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">364 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at March 6, 2020 (post to exchange ratio conversion)</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,678 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised in 2020</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(28)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited/Cancelled in 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(50)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options Outstanding as of December 31, 2020</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,600 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised in quarter ended March 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(37)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited/Cancelled in quarter ended March 31, 2021</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(11)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options Outstanding as of March 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,552 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised in quarter ended June 30, 2021</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(257)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited/Cancelled in quarter ended June 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options Outstanding as of June 30, 2021</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,291 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised in quarter ended September 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(687)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited/Cancelled in quarter ended September 30, 2021</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options Outstanding as of September 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,603 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 2734000 829000 19000 1887000 4314000 364000 4678000 28000 50000 4600000 37000 11000 4552000 257000 3000 4291000 687000 1000 3603000 70000.00 1010000.00 2100000 250000 3500000 3.54 3600000 92500000 P7Y2M23D 200000 P1Y11M4D 16300000 320000 40000.00 The following table represent the number of shares available for grants from 2020 Equity Incentive Plan (in thousands):<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:86.162%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Available<br/>for grant</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Available for grant, December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,881 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(546)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSU granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">PSU granted (100% target)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(566)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options, RSUs, and PSUs forfeited</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">669 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Traded for taxes (returned to the pool)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,513 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Available for grant, September 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,904 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 9881000 546000 47000 566000 669000 1513000 10904000 320000 P10Y The key assumptions for 2021 grants are provided in the following table.<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:74.192%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:23.608%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dividend yield</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.87 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected term in years</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.11</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Grant date fair value of common stock</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18.60 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 0 0.40 0.0087 P6Y1M9D 18.60 0 <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes option activity for the nine months ended September 30, 2021 (shares in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.222%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.640%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Price </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:700;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">(1)</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:700;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">(2)</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options outstanding as of December 31, 2020 (2020 Plan)</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,942 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.38 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.22</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">546 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18.60 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(102)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.20 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options forfeited</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(345)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.67 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options outstanding as of September 30, 2021 (2020 Plan)</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,041 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11.08 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.85</span></td></tr></table></div><div style="margin-top:12pt;padding-left:18pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:6.34pt">Represents the weighted average exercise price</span></div>(2)Represents weighted average remaining contractual term 1942000 8.38 P9Y2M19D 546000 18.60 102000 8.20 345000 8.67 2041000 11.08 P8Y10M6D 490000 550000 4000000 7.35 2000000 37000000 6900000 P2Y11M19D 80000.00 80000.00 2100000 The following table summarizes RSU activity for the nine months ended September 30, 2021(in thousands):<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:86.162%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.638%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs outstanding as of December 31, 2020 (2020 Plan)</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,996 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs granted</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">47 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs released</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,068)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSU forfeited</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(291)</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs outstanding as of September 30, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,683 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 2996000 47000 1068000 291000 1683000 13600000 P1Y10M24D 500000 3 0.50 0.50 20000.00 2.72 13100000 9700000 9100000 5100000 Employee stock-based compensation recognized was as follows (in thousands):<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:46.122%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Three months ended September 30, 2021</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Nine months ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">173 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">433 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">740 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Engineering, research, and development</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">799 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">621 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,970 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,678 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sales and marketing</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">963 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">808 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,207 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,545 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">General and administrative</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,178 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,631 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,849 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,621 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total stock-based compensation</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,113 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,126 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,459 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,584 </span></td><td style="background-color:#cceeff;border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 173000 66000 433000 740000 799000 621000 1970000 1678000 963000 808000 2207000 2545000 7178000 3631000 16849000 8621000 9113000 5126000 21459000 13584000 30300000 Earnings per share<div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company computed earnings per share (“EPS”) in conformity with the two-class method required for participating securities. Undistributed earnings allocated to participating securities are subtracted from net income in determining net income attributable to common stockholders. The Company allocated income between its common and preferred shareholders only for the periods the preferred stock was outstanding, which was January 1, 2020 to March 4, 2020. There was no preferred stock outstanding from March 5, 2020 to September 30, 2021. As the Company was in a net loss position for the periods between January 1, 2020 to March 4, 2020 and March 5, 2020 to September 30, 2021, the net loss was allocated entirely to common shareholders.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All participating securities are excluded from basic weighted-average number of common shares outstanding. Diluted EPS is computed by dividing net income available to common shareholders by the weighted-average number of shares of common stock outstanding during the period increased to include the number of additional shares of common stock that would have been outstanding if the potentially dilutive securities had been issued. Potentially dilutive securities include outstanding stock options, restricted stock units, performance stock units, warrants, and convertible preferred securities. The dilutive effect of potentially dilutive securities is reflected in diluted EPS in order of dilution and by application of the treasury stock method and the if-converted method for stock-based compensation and convertible preferred securities, respectively.</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth the computation of basic and diluted EPS of common stock as follows (in thousands except per share data):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:46.122%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Three months ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Nine months ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Numerator for basic and diluted loss per share</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(549)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,117)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(4,094)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7,879)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Denominator for basic and diluted loss per share</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted-average shares outstanding – basic and diluted</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,610</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49,651</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">56,280</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,074</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net income/(loss) per share</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.01)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.02)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.07)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.18)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.01)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.02)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.07)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.18)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table represents the number of share equivalents outstanding during the period that were excluded from the calculation of diluted net loss per share attributable to common stockholders because including them would have had an anti-dilutive effect.</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:45.391%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.624%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Three months ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Nine months ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Potential common shares (in ‘000s)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Convertible preferred stock</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,048 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock options to purchase common stock</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,486 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,467 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,088 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,676 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restricted stock units</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,840 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,963 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,042 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,993 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Performance stock units</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,452 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,292 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,452 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,292 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Warrants to purchase common stock</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,208 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,347 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,347 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,347 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,986 </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,069 </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,929 </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25,356 </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth the computation of basic and diluted EPS of common stock as follows (in thousands except per share data):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:46.122%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Three months ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Nine months ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Numerator for basic and diluted loss per share</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(549)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,117)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(4,094)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7,879)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Denominator for basic and diluted loss per share</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted-average shares outstanding – basic and diluted</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,610</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49,651</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">56,280</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,074</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net income/(loss) per share</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.01)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.02)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.07)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.18)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.01)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.02)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.07)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(0.18)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> -549000 -1117000 -4094000 -7879000 62610000 62610000 49651000 49651000 56280000 56280000 43074000 43074000 -0.01 -0.02 -0.07 -0.18 -0.01 -0.02 -0.07 -0.18 <div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table represents the number of share equivalents outstanding during the period that were excluded from the calculation of diluted net loss per share attributable to common stockholders because including them would have had an anti-dilutive effect.</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:45.391%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.624%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Three months ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Nine months ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Potential common shares (in ‘000s)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2020</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Convertible preferred stock</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,048 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock options to purchase common stock</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,486 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,467 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,088 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,676 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restricted stock units</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,840 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,963 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,042 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,993 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Performance stock units</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,452 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,292 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,452 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,292 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:justify;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Warrants to purchase common stock</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,208 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,347 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,347 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,347 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,986 </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,069 </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,929 </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25,356 </span></td><td style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 0 0 0 1048000 6486000 6467000 7088000 8676000 1840000 2963000 3042000 2993000 1452000 1292000 1452000 1292000 4208000 11347000 11347000 11347000 13986000 22069000 22929000 25356000 Commitments and contingencies<div style="margin-top:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Legal Matters</span></div><div style="margin-top:12pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company is subject to legal proceedings and claims that arise in the ordinary course of its business. Management evaluates each claim and provides for potential loss when the claim is probable to be paid and reasonably estimable. While adverse decisions in certain of these litigation matters, claims and administrative proceedings could have a material effect on a particular period’s results of operations, subject to the uncertainties inherent in estimating future costs for contingent liabilities, management believes that any future accruals with respect to these currently known contingencies would not have a material effect on the financial condition, liquidity or cash flows of the Company. There were no amounts required to be reflected in these consolidated financial statements related to contingencies.</span></div> Subsequent eventsThe Company performed its subsequent event procedures through November 4, 2021, the date these condensed consolidated financial statements were issued. In October 2021 the Company finalized its Business Combination post-Close share adjustment. As a result of this additional 0.1 million shares were issued and 0.9 million shares were released from escrow. Please refer to Note 3 for details. 100000 900000 XML 12 R1.htm IDEA: XBRL DOCUMENT v3.21.2
Cover Page - shares
9 Months Ended
Sep. 30, 2021
Nov. 02, 2021
Cover [Abstract]    
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Sep. 30, 2021  
Document Transition Report false  
Entity File Number 001-38685  
Entity Registrant Name Grid Dynamics Holdings, Inc.  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 83-0632724  
Entity Address, Address Line One 5000 Executive Parkway  
Entity Address, Address Line Two Suite 520  
Entity Address, City or Town San Ramon  
Entity Address, State or Province CA  
Entity Address, Postal Zip Code 94583  
City Area Code 650  
Local Phone Number 523-5000  
Title of 12(b) Security Common Stock, par value $0.0001 per share  
Trading Symbol GDYN  
Security Exchange Name NASDAQ  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth Company true  
Entity Ex Transition Period false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   65,251,896
Current Fiscal Year End Date --12-31  
Amendment Flag false  
Entity Central Index Key 0001743725  
Document Fiscal Year Focus 2021  
Document Fiscal Period Focus Q3  
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.21.2
Unaudited Condensed Consolidated Balance Sheets - USD ($)
$ in Thousands
Sep. 30, 2021
Dec. 31, 2020
Current assets    
Cash and cash equivalents $ 199,297 $ 112,745
Accounts receivable, net of allowance of $254 and $418 as of September 30, 2021 and December 31, 2020, respectively 30,773 16,890
Unbilled receivables 4,883 1,799
Prepaid income taxes 694 821
Prepaid expenses and other current assets 5,301 2,361
Total current assets 240,948 134,616
Property and equipment, net 5,395 4,095
Intangible assets, net 19,729 8,125
Deferred tax assets 3,258 5,609
Goodwill 35,358 14,690
Total assets 304,688 167,135
Current liabilities    
Accounts payable 1,772 757
Accrued liabilities 1,148 628
Accrued compensation and benefits 11,222 7,479
Accrued income taxes 2,302 1,248
Other current liabilities 7,775 3,206
Total current liabilities 24,219 13,318
Deferred tax liabilities 4,903 2,093
Total liabilities 29,122 15,411
Stockholders’ equity (Note 9)    
Common stock, $0.0001 par value; 110,000,000 shares authorized; 65,121,241 and 50,878,780 issued and outstanding as of September 30, 2021 and December 31, 2020, respectively 7 5
Additional paid-in capital 256,936 128,930
Retained earnings 18,699 22,793
Accumulated other comprehensive income/(loss) (76) (4)
Total stockholders’ equity 275,566 151,724
Total liabilities and stockholders’ equity $ 304,688 $ 167,135
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.21.2
Unaudited Condensed Consolidated Balance Sheets (Parenthetical) - USD ($)
$ in Thousands
Sep. 30, 2021
Dec. 31, 2020
Mar. 05, 2020
Statement of Financial Position [Abstract]      
Allowance for doubtful accounts $ 254 $ 418  
Common stock, par value (in dollars per share) $ 0.0001 $ 0.0001 $ 0.0001
Common stock, shares authorized (in shares) 110,000,000 110,000,000  
Common stock, shares issued (in shares) 65,121,241 50,878,780  
Common stock, shares outstanding (in shares) 65,121,241 50,878,780  
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.21.2
Unaudited Condensed Consolidated Statements of Loss and Comprehensive Loss - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2021
Sep. 30, 2020
Sep. 30, 2021
Sep. 30, 2020
Income Statement [Abstract]        
Revenue $ 57,933 $ 26,332 $ 144,743 $ 81,157
Cost of revenue 32,667 15,178 84,343 51,799
Gross profit 25,266 11,154 60,400 29,358
Operating expenses        
Engineering, research, and development 2,132 2,076 5,687 7,193
Sales and marketing 4,073 2,245 9,942 7,451
General and administrative 17,091 8,504 43,195 26,606
Total operating expenses 23,296 12,825 58,824 41,250
Income/(loss) from operations 1,970 (1,671) 1,576 (11,892)
Other income/(expenses), net 114 455 (1,015) 419
Income/(loss) before income taxes 2,084 (1,216) 561 (11,473)
Provision/(benefit) for income taxes 2,633 (99) 4,655 (3,594)
Net loss (549) (1,117) (4,094) (7,879)
Foreign currency translation adjustments, net of tax (86) 0 (72) 0
Comprehensive loss $ (635) $ (1,117) $ (4,166) $ (7,879)
Loss per share        
Basic (in dollars per share) $ (0.01) $ (0.02) $ (0.07) $ (0.18)
Diluted (in dollars per share) $ (0.01) $ (0.02) $ (0.07) $ (0.18)
Weighted average shares outstanding        
Basic (in shares) 62,610 49,651 56,280 43,074
Diluted (in shares) 62,610 49,651 56,280 43,074
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.21.2
Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity - USD ($)
shares in Thousands, $ in Thousands
Total
Previously Reported
Adjustment
Convertible Preferred Stock
Convertible Preferred Stock
Previously Reported
Convertible Preferred Stock
Adjustment
Common Stock
Common Stock
Previously Reported
Common Stock
Adjustment
Additional paid-in capital
Additional paid-in capital
Previously Reported
Additional paid-in capital
Adjustment
Retained earnings
Retained earnings
Previously Reported
Accumulated other comprehensive income/(loss)
Accumulated other comprehensive income/(loss)
Previously Reported
Beginning balance (in shares) at Dec. 31, 2019       1,048 622 426 21,644 12,847 8,797              
Beginning balance at Dec. 31, 2019 $ 54,044 $ 54,044 $ 0 $ 9,187 $ 9,187   $ 2 $ 8,117 $ (8,115) $ 18,650 $ 10,535 $ 8,115 $ 35,392 $ 35,392 $ 0 $ 0
Increase (Decrease) in Stockholders' Equity [Roll Forward]                                
Net income (4,596)                       (4,596)      
Stock-based compensation 4,804                 4,804            
Conversion of convertible units (in shares)             53                  
Conversion of convertible units 530                 530            
Conversion of preferred stock (in shares)       (1,048)     1,048                  
Conversion of preferred stock 9,188     $ (9,187)     $ 1     9,187            
Consideration paid to Grid shareholders (123,865)                 (123,865)            
ChaSerg shares recapitalized, net of transaction costs of $4,142 (in shares)             28,088                  
ChaSerg shares recapitalized, net of transaction costs of $4,142 204,325           $ 2     204,323            
Ending balance (in shares) at Mar. 31, 2020       0     50,833                  
Ending balance at Mar. 31, 2020 144,430     $ 0     $ 5     113,629     30,796   0  
Beginning balance (in shares) at Dec. 31, 2019       1,048 622 426 21,644 12,847 8,797              
Beginning balance at Dec. 31, 2019 54,044 $ 54,044 $ 0 $ 9,187 $ 9,187   $ 2 $ 8,117 $ (8,115) 18,650 $ 10,535 $ 8,115 35,392 $ 35,392 0 $ 0
Increase (Decrease) in Stockholders' Equity [Roll Forward]                                
Net income (7,879)                              
Foreign currency translation adjustments, net of tax 0                              
Ending balance (in shares) at Sep. 30, 2020       0     50,860                  
Ending balance at Sep. 30, 2020 150,005     $ 0     $ 5     122,487     27,513   0  
Beginning balance (in shares) at Mar. 31, 2020       0     50,833                  
Beginning balance at Mar. 31, 2020 144,430     $ 0     $ 5     113,629     30,796   0  
Increase (Decrease) in Stockholders' Equity [Roll Forward]                                
Net income (2,166)                       (2,166)      
Stock-based compensation 3,654                 3,654            
Exercise of stock options (in shares)             6                  
Exercise of stock options 59                 59            
Ending balance (in shares) at Jun. 30, 2020       0     50,839                  
Ending balance at Jun. 30, 2020 145,977     $ 0     $ 5     117,342     28,630   0  
Increase (Decrease) in Stockholders' Equity [Roll Forward]                                
Net income (1,117)                       (1,117)      
Stock-based compensation 5,126                 5,126            
Exercise of stock options (in shares)             6                  
Exercise of stock options 19                 19            
Foreign currency translation adjustments, net of tax 0                              
Issuance of shares in connection with vested RSUs (in shares)             15                  
Ending balance (in shares) at Sep. 30, 2020       0     50,860                  
Ending balance at Sep. 30, 2020 150,005     $ 0     $ 5     122,487     27,513   0  
Beginning balance (in shares) at Dec. 31, 2020       0     50,879                  
Beginning balance at Dec. 31, 2020 151,724     $ 0     $ 5     128,930     22,793   (4)  
Increase (Decrease) in Stockholders' Equity [Roll Forward]                                
Net income (2,062)                       (2,062)      
Stock-based compensation 5,671                 5,671            
Conversion of convertible units (in shares)             2,221                  
Exercise of stock options (in shares)             41                  
Exercise of stock options 162                 162            
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards (in shares)             1,030                  
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards (15,297)                 (15,297)            
Foreign currency translation adjustments, net of tax 49                           49  
Ending balance (in shares) at Mar. 31, 2021       0     54,171                  
Ending balance at Mar. 31, 2021 140,247     $ 0     $ 5     119,466     20,731   45  
Beginning balance (in shares) at Dec. 31, 2020       0     50,879                  
Beginning balance at Dec. 31, 2020 151,724     $ 0     $ 5     128,930     22,793   (4)  
Increase (Decrease) in Stockholders' Equity [Roll Forward]                                
Net income (4,094)                              
Foreign currency translation adjustments, net of tax (72)                              
Ending balance (in shares) at Sep. 30, 2021       0     65,121                  
Ending balance at Sep. 30, 2021 275,566     $ 0     $ 7     256,936     18,699   (76)  
Beginning balance (in shares) at Mar. 31, 2021       0     54,171                  
Beginning balance at Mar. 31, 2021 140,247     $ 0     $ 5     119,466     20,731   45  
Increase (Decrease) in Stockholders' Equity [Roll Forward]                                
Net income (1,483)                       (1,483)      
Stock-based compensation 6,675                 6,675            
Conversion of convertible units (in shares)             271                  
Conversion of convertible units 918                 918            
Exercise of stock options (in shares)             138                  
Exercise of stock options 254                 254            
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards (in shares)             149                  
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards (3,564)                 (3,564)            
Foreign currency translation adjustments, net of tax (35)                           (35)  
Ending balance (in shares) at Jun. 30, 2021       0     54,729                  
Ending balance at Jun. 30, 2021 143,012     $ 0     $ 5     123,749     19,248   10  
Increase (Decrease) in Stockholders' Equity [Roll Forward]                                
Net income (549)                       (549)      
Stock-based compensation 9,113                 9,113            
Conversion of convertible units (in shares)             4,188                  
Conversion of convertible units 48,206           $ 1     48,205            
Exercise of stock options (in shares)             656                  
Exercise of stock options 203                 203            
Issuance of common stock in July 2021 offering, net of transaction costs of $498 (in shares)             5,470                  
Issuance of common stock in July 2021 offering, net of transaction costs of $498 77,813           $ 1     77,812            
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards (in shares)             78                  
Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards (2,146)                 (2,146)            
Foreign currency translation adjustments, net of tax (86)                           (86)  
Ending balance (in shares) at Sep. 30, 2021       0     65,121                  
Ending balance at Sep. 30, 2021 $ 275,566     $ 0     $ 7     $ 256,936     $ 18,699   $ (76)  
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.21.2
Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity (Parenthetical)
$ in Thousands
3 Months Ended
Mar. 31, 2020
USD ($)
Statement of Stockholders' Equity [Abstract]  
Recapitalized transaction costs $ 4,142
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.21.2
Unaudited Condensed Consolidated Statement of Cash Flows - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2021
Sep. 30, 2020
Cash flows from operating activities    
Net loss $ (4,094) $ (7,879)
Adjustments to reconcile net loss to net cash provided by operating activities:    
Depreciation and amortization 3,520 1,896
Bad debt (17) 398
Deferred income taxes 2,663 (4,519)
Stock-based compensation 21,459 13,584
Change in fair value of warrants 979 0
Changes in assets and liabilities:    
Accounts receivable (10,549) (2,139)
Unbilled receivables (1,257) 2,973
Prepaid income taxes 127 (822)
Prepaid expenses and other current assets (2,062) 10
Accounts payable 676 (250)
Accrued liabilities 16 (576)
Accrued compensation and benefits 1,533 348
Accrued income taxes 848 110
Other current liabilities 813 (136)
Net cash provided by operating activities 14,655 2,998
Cash flows from investing activities    
Purchase of property and equipment (3,016) (1,607)
Acquisition of Tacit, net of cash acquired (Note 4) (30,585) 0
Net cash used in investing activities (33,601) (1,607)
Cash flows from financing activities    
Cash received from ChaSerg 0 208,997
GDI shares redeemed for cash 0 (123,865)
Equity issuance costs 0 (2,264)
Payments of tax obligations resulted from net share settlement of vested stock awards (21,007) 0
Proceeds from exercises of stock options, net of shares withheld for taxes 619 78
Proceeds from exercise of public warrants 48,145 0
Proceeds related to issuance of Common Stock from July 2021 Offering 78,311 0
Payments for professional fees related to issuance of common stock from July 2021 Offering (498) 0
Net cash provided by financing activities 105,570 82,946
Effect of exchange rate changes on cash and cash equivalents (72) 0
Net increase in cash and cash equivalents 86,552 84,337
Cash and cash equivalents, beginning of period 112,745 42,189
Cash and cash equivalents, end of period 199,297 126,526
Supplemental disclosure of cash flow information:    
Cash paid for income taxes 1,403 1,370
Supplemental disclosure of non-cash activities    
Conversion of preferred stock to common stock 0 9,187
Conversion of private warrants 979 0
Contingent consideration for acquisition of businesses $ 2,979 $ 0
XML 19 R8.htm IDEA: XBRL DOCUMENT v3.21.2
Background and nature of operations
9 Months Ended
Sep. 30, 2021
Accounting Policies [Abstract]  
Background and nature of operations Background and nature of operations
Grid Dynamics Holdings, Inc. (the “Company” or “GDH”) provides enterprise-level digital transformation in the areas of search, analytics, and release automation to Fortune 1000 companies. The Company’s headquarters and principal place of business is in San Ramon, California.
The Company was originally incorporated in Delaware on May 21, 2018 as a special purpose acquisition company under the name ChaSerg Technology Acquisition Corp. (“ChaSerg”) for the purpose of effecting a merger, capital stock exchange, asset acquisition, stock purchase, reorganization or similar business combination involving ChaSerg and one or more businesses. On March 5, 2020 (the “Closing”), the Company consummated its business combination with Grid Dynamics International, Inc. (“GDI”) pursuant to the Agreement and Plan of Merger (the “Merger Agreement”), dated November 13, 2019 (the “Business Combination”). In connection with the Closing, the Company changed its name from ChaSerg Technology Acquisition Corp. to Grid Dynamics Holdings, Inc. The Company’s common stock is now listed on the NASDAQ under the symbol “GDYN” and warrants to purchase the common stock at an exercise price of $11.50 per share were listed on the NASDAQ under the symbol “GDYNW” until they all were delisted on August 30, 2021 following redemption.
Unless the context otherwise requires, the “Company” refers to the combined company and its subsidiaries following the Business Combination, “ChaSerg” refers to the Company prior to the Closing, and “GDI” refers to GDI prior to the Closing. Refer to Note 3 for further discussion of the Business Combination.
XML 20 R9.htm IDEA: XBRL DOCUMENT v3.21.2
Basis of presentation and summary of significant accounting policies
9 Months Ended
Sep. 30, 2021
Accounting Policies [Abstract]  
Basis of presentation and summary of significant accounting policies Basis of presentation and summary of significant accounting policies
The following is a summary of the significant accounting policies consistently applied in the preparation of the accompanying consolidated financial statements.
Unaudited Interim Financial Statements
The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States (“U.S. GAAP”) for interim financial information and in accordance with the rules and regulations of the Securities and Exchange Commission (“SEC”). Accordingly, they do not include all of the information and footnotes required by U.S. GAAP for complete financial statements. The unaudited condensed consolidated financial statements reflect all normal and recurring adjustments that are, in the opinion of the Company’s management, necessary for the fair presentation of the results of operations for the interim periods. Operating results for the three and nine months ended September 30, 2021 are not necessarily indicative of the results that may be expected for the year ending December 31, 2021. These interim financial statements should be read in conjunction with GDH’s audited financial statements for the year ended December 31, 2020 included in the Company’s annual report on Form 10-K that the Company filed with the SEC on March 5, 2021.
Basis of presentation
The Business Combination was accounted for as a reverse recapitalization in accordance with U.S. GAAP. Although ChaSerg was the legal acquirer, for accounting purposes, GDI was deemed to be the accounting acquirer. GDI was determined to be the accounting acquirer based on evaluation of the following facts and circumstances:
GDI holds executive management roles for the Company and those individuals are responsible for the day-to-day operations;
GDI’s former owners have the largest minority voting rights in the Company;
From a revenue and business operation standpoint, GDI was the larger entity in terms of relative size;
GDI’s San Ramon, CA headquarters are the headquarters of the Company; and
The intended strategy of the Company will continue GDI’s strategy of driving enterprise-level digital transformation in the Fortune 1000 companies.
In conjunction with the Business Combination, outstanding shares of GDI were converted into common stock of the Company, par value $0.0001 per share, shown as a recapitalization, and the net assets of ChaSerg were acquired at historical cost, with no goodwill or other intangible assets recorded. GDI was deemed to be the predecessor of the Company, and the consolidated assets and liabilities and results of operations prior to the Closing (for the years ended December 31, 2019 and 2018 and the period from January 1, 2020 to March 5, 2020) are those of GDI. ChaSerg’s assets and liabilities, which include net cash from the trust of $85.1 million, and results of operations were consolidated with GDI beginning on the Closing.
In accordance with guidance applicable to these circumstances, the equity structure has been restated in all comparative periods up to the Closing Date, to reflect the number of shares of the Company’s common stock, $0.0001 par value per share, issued to GDI shareholders in connection with the recapitalization transaction. As such, the shares and corresponding capital amounts and earnings per share related to GDI preferred and common stock prior to the Business Combination have been retroactively restated as shares reflecting the exchange ratio established in the Business Combination.
Principles of consolidation
The accompanying condensed financial statements include the accounts of the Company and all of its subsidiaries that are directly or indirectly owned or controlled. Intercompany transactions and balances have been eliminated upon consolidation.
Use of estimates
The preparation of the consolidated condensed financial statements in accordance with U.S. GAAP requires the Company to make estimates and assumptions that affect the amounts reported in the condensed consolidated financial statements and accompanying notes. Actual results could differ from these estimates and such differences could be material. Significant estimates include allowances for receivables, calculation of accrued liabilities, capitalization of internally developed software, stock-based compensation, contingent consideration payable, determination of fair value, useful lives and recoverability of intangible assets and goodwill, determination of provision for income taxes and uncertain tax positions.
Certain significant risks and uncertainties
The Company is subject to risks, including but not limited to customer concentration, concentrations of credit and foreign currency risks. Refer to the section below for additional information. Additionally, the Company has been impacted by the coronavirus (“COVID-19”) pandemic. The global pandemic of COVID-19 has negatively affected the U.S. and global economy, disrupted global supply chains, resulted in significant travel and transport restrictions, including mandated closures and orders to “shelter-in-place,” and created significant disruption of the financial market. In 2020 the COVID-19 pandemic impacted the Company’s revenues, and the Company’s business continues to be exposed to risks and uncertainties related to the pandemic. The impact of the COVID-19 pandemic had been more pronounced with the Company’s retail customers, which depended on keeping their stores open. Additionally, in situations where the Company’s customers encountered financial difficulties, there was a risk associated with the Company’s inability to collect money from customers. In 2020 the Company took several actions to deal with the COVID-19 pandemic. These included enabling its employees to work from home, company-wide salary and compensation cuts, hiring freezes, and suspending all non-essential travel. Some of these actions such as working from home as well as suspending all non-essential travel continues to be currently in place. As the Company's business recovered in 2021, the Company discontinued some of the cost saving measures such as compensation cuts and hiring freezes. The Company now is facing the opposite challenges including employee retention and shortage of talent on the job market. The ultimate impact and the extent to which the COVID-19 pandemic will continue to affect the business, results of operation and financial condition is difficult to predict and depends on numerous evolving factors outside of the Company’s control including: the duration and scope of the pandemic, including from renewed waves and new variants; government, social, business and other actions that have been and will be taken in response to the pandemic; and the effect of the pandemic on short and long-term general economic conditions.
Concentrations of credit risk and significant customers
The Company records its accounts receivable and unbilled receivables at their face amounts less allowances. Accounts receivable and unbilled receivables are generally dispersed across the Company’s customers in proportion to their revenue. Two customers individually exceeded 10% of the Company’s accounts receivable balance as of September 30, 2021 and three customers individually exceeded 10% of the Company’s accounts receivable balance as of December 31, 2020. Two customers individually exceeded 10% of the unbilled receivables as of September 30, 2021 and three customers individually exceeded 10% of the unbilled receivables as of December 31, 2020. Two customers individually accounted for greater than 10% of the sales for the three and nine months ended September 30, 2021 and 2020, respectively.
Cash and cash equivalents
The Company considers cash equivalents to be highly liquid investments with original maturities of three months or less from the date of purchase. Cash equivalents are stated at cost, which approximates fair value. At times, cash deposits with banks may exceed federally insured limits.
Accounts receivable and allowance for doubtful accounts
Accounts receivable, less allowance for doubtful accounts, reflect the net realizable value of receivables and approximate fair value. The Company maintains an allowance against accounts receivable for the estimated probable losses on uncollectible accounts. The allowance is based upon historical loss experience, current economic conditions within the industries the Company serves as well as determination of the specific risk related to certain customers. Accounts receivable are charged off against the reserve when, in management’s estimation, further collection efforts would not result in a reasonable likelihood of receipt.
As of
September 30,
2021
December 31,
2020
(in thousands)
Trade accounts receivable$31,027 $17,308 
Allowance for doubtful accounts(254)(418)
Total trade accounts receivable, net$30,773 $16,890 
Unbilled receivables
Generally, the Company will not bill customers until the services have been completed. From time-to-time, a service period may overlap with a period-end and the unbilled receivables represent amounts for services performed through period-end, but not yet billed. The unbilled receivable represents the amount expected to be billed and collected for services performed through period-end in accordance with contract terms. The unbilled receivables balances were $4.9 million and $1.8 million as of September 30, 2021 and December 31, 2020, respectively.
Goodwill
Goodwill represents the excess of purchase price over the fair value of the net assets of businesses acquired. On an annual basis, the Company makes a qualitative assessment to determine if it is more likely than not that the fair value of the reporting unit is less than its carrying amount, including goodwill. If the Company determines that the fair value of the reporting unit is less than its carrying amount, it will perform a quantitative analysis; otherwise, no further evaluation is necessary. For the quantitative impairment assessment, the Company compares the fair value of the reporting unit to its carrying value, including goodwill. The Company uses the discounted cash flow method of the income approach and market approach to determine the fair value of the reporting unit. If the fair value of the reporting unit exceeds the carrying value of the net assets assigned to that unit, goodwill is not impaired, and no further testing is performed. If the carrying value of the net assets assigned to the reporting unit exceeds the fair value of the reporting unit, then the Company will recognize a loss equal to the excess, limited to the total amount of goodwill allocated to that reporting unit. Impairments, if any, are charged directly to earnings. As of September 30, 2021, the Company has a single reporting unit and determined there were no indicators of impairment.
Intangible assets
Finite-lived intangible assets are stated at cost less accumulated amortization. Amortization is computed on the straight-line basis over the asset’s useful lives ranging between 2 and 12 years. Intangible assets are evaluated for impairment whenever events or changes in circumstances indicate that the carrying value of the assets may not be fully recoverable. If facts and circumstances indicate that the carrying value might not be recoverable, projected undiscounted net cash flows associated with the related asset or group of assets over their estimated remaining useful lives is compared against their respective carrying amounts. If an asset is found to be impaired, the impairment charge will be measured as the amount by which the carrying amount of an entity exceeds its fair value. As of September 30, 2021, the Company determined there were no indicators of impairment.
Revenue recognition
The Company accounts for a contract with a customer when 1) the parties to the contract have approved the contract and are committed to performing their respective obligations, 2) the contract identifies each party’s rights regarding the goods or services to be transferred, 3) the contract identifies the payment terms for the goods or services to be transferred, 4) the contract has commercial substance, and 5) collection of substantially all consideration pursuant to the contract is probable.
The Company derives its revenue from offering a suite of digital engineering and information technology (“IT”) consulting services, including digital transformation strategy, emerging technology, lean labs and legacy system replatforming. For most contracts, the Company uses master agreements to govern the overall relevant terms and conditions of the business arrangement between the Company and its customers. When the Company and a customer enter into a Master Services Agreement (“MSA”), purchases are generally made by the customer via a statement of work (“SOW”) which explicitly references the MSA and specifies the services to be delivered. Fees for these contracts may be in the form of time-and-materials or fixed-fee arrangements. The majority of the Company’s revenues are generated under time-and-material contracts which are billed using hourly rates to determine the amounts to be charged directly to the customer. Fees are billed and collected as stipulated in the contract, and revenue is recognized as services are performed. If there is an uncertainty about the receipt of payment for the services, revenue is recognized to the extent that a significant reversal of revenue would not be probable.
Consulting services revenue is a single performance obligation earned through a series of distinct daily services and may include services such as those described above. The Company recognizes revenue for services over time as the customer simultaneously receives and consumes the benefits as the Company performs IT consulting services. For revenue contracts, the customer derives value from the Company providing daily consulting services, and the value derived corresponds to the labor hours expended. Therefore, the Company measures the progress and recognizes revenue using an effort-based input method. For fixed fee contracts, the Company recognizes revenue as the work is performed, the monthly calculation of which is based upon actual labor hours incurred and level of effort expended throughout the duration of the contract.
For time-and-material contracts, the Company applies the variable consideration allocation exception. Therefore, instead of allocating the variable consideration to the entire performance obligation, the Company determined the variable consideration should be allocated to each distinct service to which the variable consideration relates, which is providing the customer daily consulting services. The Company also offers volume discounts or early settlement discounts. Volume discounts apply once the customer reaches certain contractual spend thresholds. Early settlement discounts are issued contingent upon the timing of the payment from the customer. If the consideration promised in a contract includes a variable amount, the Company only includes estimated amounts of consideration in the transaction price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. These estimates may require management to make subjective judgments and to make estimates about the effects of matters inherently uncertain. The determination of whether to constrain consideration in the transaction price are based on information (historical, current and forecasted) that is reasonably available to the Company, taking into consideration the type of customer, the type of transaction and the specific facts and circumstances of each arrangement. Although the Company believes that its approach in developing estimates and its reliance on certain judgments and underlying inputs is reasonable, actual results may differ from management’s estimates, judgments and assumptions. These estimates have historically not been material to the consolidated financial statements.
Remaining performance obligation
ASC 606 requires that the Company disclose the aggregate amount of transaction price that is allocated to performance obligations that have not yet been satisfied as of September 30, 2021. This disclosure is not required for:
1)contracts with an original duration of one year or less, including contracts that can be terminated for convenience without a substantive penalty,
2)contracts for which the Company recognizes revenues based on the right to invoice for services performed,
3)variable consideration allocated entirely to a wholly unsatisfied performance obligation or to a wholly unsatisfied promise to transfer a distinct good or service that forms part of a single performance obligation in accordance with ASC 606-10-25-14(b), for which the criteria in ASC 606-10-32-40 have been met, or
4)variable consideration in the form of a sales-based or usage-based royalty promised in exchange for a license of intellectual property.
All of the Company’s contracts met one or more of these exemptions as of September 30, 2021.
Stock-based compensation expense
Stock-based compensation expense is measured based on the grant-date fair value of the share-based awards. Forfeitures are recognized as incurred. The Company estimates stock options grant-date fair value using the Black-Scholes-Merton option pricing model. The model requires management to make a number of key assumptions including expected volatility, expected term, risk-free interest rate, and expected dividends. The Company evaluates the assumptions used to value its share-based awards on each grant date. The fair market value of Grid Dynamics stock is determined based on the closing price on NASDAQ on the measurement date. The Company amortizes the grant-date fair value of all share-based compensation awards over the employee’s requisite service period for the entire award on a straight-line basis, which is generally the vesting period. For an award with graded vesting that is subject only to a service condition (e.g., time-based vesting), the Company uses the straight-line attribution method under ASC 718 under which they recognize compensation cost on a straight-line basis over the total requisite service period for the entire award (i.e., over the requisite service period of the last separately-vesting tranche of the award). Additionally, the Company applies the “floor” concept so that the amount of compensation cost that is recognized as of any date is at least equal to the grant-date fair value of the vested portion of the award on that date. That is, if the straight-line expense recognized to date is less than the grant date fair value of the award that is legally vested at that date, the company will increase its recognized expense to at least equal the fair value of the vested amount. Refer to Note 10 — Stock-based compensation for additional information.
Income taxes
The Company follows the asset and liability method of accounting for income taxes. Under this method, deferred income taxes are recognized for the tax consequences of temporary differences between the financial statement carrying amounts and the tax basis of the assets and liabilities. The determination of the provision for income taxes requires significant judgment, the use of estimates and the interpretation and application of complex tax laws. The provision for income taxes reflects a combination of income earned and taxed in the various U.S. federal and state, international and other jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for tax contingencies or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective tax rate.
In assessing the realizability of deferred tax assets, management considers whether it is more likely than not that some portion, or all, of the deferred tax assets will not be realized. Management considers all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes prior earnings history, the scheduled reversal of deferred tax liabilities, projected future taxable income, carryback and carryforward periods of tax attributes, and tax planning strategies that could potentially enhance the likelihood of realization of a deferred tax asset in making this assessment. The weight given to the positive and negative evidence is commensurate with the extent to which the evidence may be objectively verified.
The Company evaluates for uncertain tax positions at each balance sheet date. When it is more likely than not that a position will be sustained upon examination by a tax authority that has full knowledge of all relevant information, the Company measures the amount of tax benefit from the position and records the largest amount of tax benefit that is greater than 50% likely of being realized after settlement with a tax authority. The Company’s policy for interest and/or penalties related to underpayments of income taxes is to include interest and penalties in income tax expense.
Recently adopted accounting pronouncements
Changes to U.S. GAAP are established by the Financial Accounting Standards Board (the “FASB”), in the form of Accounting Standards Updates (“ASUs”), to the FASB’s ASC. The Company has elected not to opt out of the extended transition period and thus when a standard is issued or revised and it has different application dates for public or private companies, the Company, as an emerging growth company, can adopt the new or revised standard at the time private companies adopt the new or revised standard.
In December 2019, the FASB issued Accounting Standard Update No. 2019-12, Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes (ASU 2019-12), which simplifies the accounting for income taxes by removing certain exceptions to the general principles and also simplification of areas such as franchise taxes, step-up in tax basis goodwill, separate entity financial statements and interim recognition of enactment of tax laws or rate changes. The update is effective for fiscal years and interim periods within those fiscal years beginning after December 15, 2020, and early adoption is permitted. The Company adopted the standard as of January 1, 2021 and has determined that the adoption of this guidance did not have a material effect on the consolidated financial statements.
Recently issued accounting pronouncements
The Company considered the applicability and impact of all ASUs. ASUs not listed below were assessed and determined to be either not applicable or are expected to have minimal impact on the consolidated financial statements.
In February 2016, the FASB issued ASU No. 2016-2, Leases. ASU 2016-2 requires lessees to put most leases on their balance sheet while recognizing expense in a manner similar to existing accounting. ASU 2016-2 states that a lessee would recognize a lease liability for the obligation to make lease payments and a right-to-use asset for the right to use the underlying asset for the lease term. The standard allows for two methods of adoption to recognize and measure leases: retrospectively to each prior period presented in the financial statements with the cumulative effect of initially applying the guidance recognized at the beginning of the earliest comparative period presented or retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. Both adoption methods include a number of optional practical expedients that entities may elect to apply. The Company will adopt the standard retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. The new accounting guidance is effective for the Company for fiscal periods beginning after December 15, 2021. The Company expects the impact to be material but has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.
In June 2016, the FASB issued ASU 2016-13, Financial Instruments-Credit Losses (Topic 326) — Measurement of Credit Losses on Financial Instruments. Topic 326 was subsequently amended by ASU 2019-4, Codification Improvements to Topic 326, Financial Instruments — Credit Losses, ASU 2019-5, Financial Instruments — Credit Losses (Topic 326): Targeted Transition Relief, and clarified the guidance with the release of ASU 2020-2 Financial Instruments—Credit Losses (Topic 326) and Leases (Topic 842). These ASUs replace the current incurred loss impairment methodology with a methodology that reflects expected credit losses measured at amortized cost and certain other instruments, including loans, held-to-maturity debt securities, net investments in leases, and off-balance sheet credit exposures. The update is effective for fiscal years beginning after December 15, 2022, and interim periods with fiscal years after December 15, 2022. The Company has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.
In March 2020, FASB issued ASU No. 2020-3, Codification to Financial Instruments. This ASU improves and clarifies various financial instruments topics, including the current expected credit losses standard issued in 2016. The ASU includes seven different issues that describe the areas of improvement and the related amendments to U.S. GAAP, intended to make the standards easier to understand and apply by eliminating inconsistencies and providing clarifications. The amendments related to Issue 1, Issue 2, Issue 3, Issue 4, and Issue 5 were effective upon issuance of this update. The new guidance did not have a material impact on the consolidated financial statements. The amendments related to Issue 6 and Issue 7 are effective for the Company the earlier of January 1, 2023 or when the Company adopts ASU 2016-13, if early adopted. The Company is currently evaluating the impact these topics will have on the consolidated financial statements.
XML 21 R10.htm IDEA: XBRL DOCUMENT v3.21.2
Business combination
9 Months Ended
Sep. 30, 2021
Business Combination and Asset Acquisition [Abstract]  
Business combination Business combination
On March 5, 2020, ChaSerg consummated its business combination with GDI pursuant to the Merger Agreement. Immediately following the Business Combination, there were 50.8 million shares of common stock with a par value of $0.0001, and 11.3 million warrants outstanding.
GDI began operations in September 2006 to provide next-generation e-commerce platform solutions in the areas of search, analytics, and release automation to Fortune 1000 companies. Under ASC 805, Business Combinations, GDI was deemed the accounting acquirer, and the Business Combination was accounted for as a reverse recapitalization, with no goodwill or other intangible assets recorded in accordance with U.S. GAAP. ChaSerg was treated as the “acquired” company for financial reporting purposes. Accordingly, for accounting purposes, the Business Combination was treated as the equivalent of GDI issuing stock for the net assets of ChaSerg, accompanied by a recapitalization. The net assets of ChaSerg were stated at historical cost, with no goodwill or other intangible assets recorded. Reported shares and earnings per share available to holders of the Company’s common stock, prior to the Business Combination, have been retroactively restated as shares reflecting the exchange ratio established in the Business Combination (approximately 1.685 GDH shares to 1.0 GDI share).
The aggregate consideration for the Business Combination was $396.5 million, consisting of $130.0 million in cash and 27.0 million shares of ChaSerg’s common stock valued at $10.19 per share, less a post-Closing share adjustment amount of 0.9 million shares which were placed in escrow post-Closing. The shares transferred at Closing included 4.3 million options to purchase the Company’s shares that were vested, outstanding and unexercised, which were determined using 1.7 million vested options at Closing converted at an exchange ratio of approximately 2.48. Additionally, 0.4 million options to purchase the
Company’s common stock that were unvested, outstanding and unexercised were assumed by the Company, which were determined using 0.1 million unvested options at Closing converted at an exchange ratio of approximately 2.48. The following represents the aggregate consideration for the Business Combination ( in thousands except for per share amount):
Shares transferred at Closing27,006 
Less: Post-Closing share adjustment(857)
Total shares transferred at Closing26,149 
Value per share$10.19 
Total share consideration$266,459 
Plus: Cash transferred to GDI stockholders130,000 
Closing merger consideration$396,459 
In connection with the Closing, 0.1 million shares of common stock were redeemed at a price per share of approximately $10.21.
In connection with the Business Combination, the Company incurred direct and incremental costs of approximately $4.7 million, consisting of legal and professional fees, of which $4.1 million were related to equity issuance costs and recorded to additional paid-in capital as a reduction of proceeds and $0.6 million were recorded to general and administrative expenses.
In connection with the Business Combination, all outstanding retention bonus obligations from a 2017 acquisition totaling $3.4 million were accelerated and paid in full to Grid Dynamics’ personnel immediately prior to the Closing and were recorded in cost of revenue and operating expenses in the consolidated financial statements.
XML 22 R11.htm IDEA: XBRL DOCUMENT v3.21.2
Acquisition of Tacit Knowledge Inc.
9 Months Ended
Sep. 30, 2021
Business Combination and Asset Acquisition [Abstract]  
Acquisition of Tacit Knowledge Inc. Acquisition of Tacit Knowledge Inc.
On May 29, 2021, the Company acquired 100% of the equity interest of the global consultancy company Tacit Knowledge Inc. (“Tacit”). Founded in 2002, Tacit is a global provider of digital commerce solutions, serving customers across the UK, North America, Continental Europe, and Asia. The acquisition of Tacit added approximately 180 employees to the Company's headcount. The acquisition will augment the Company's service offerings and will strengthen its competitive position within the market. Additionally, the acquisition will also enable the Company to leverage near-shore capabilities with Tacit’s presence in Mexico.
The total purchase consideration is $37.0 million and consists of cash consideration of $33.6 million paid at closing and fair value of the contingent consideration at the date of the acquisition of $3.4 million. The maximum amount of potential contingent cash consideration is $5.0 million. The contingent consideration is payable based on revenue and EBITDA metrics to be achieved by Tacit within 12 months. The Company recorded a liability for the contingent consideration amount based on the Company’s best estimate of the fair value of the expected payout.
The primary areas of the preliminary purchase price allocations that have not been finalized relate to the finalization of working capital, the valuation and useful lives of intangible assets, the valuation of the contingent consideration ("earn-out"), and the deferred tax liabilities. Upon completion of the fair value assessment, the Company anticipates that the ultimate intangible assets may differ from the preliminary assessment outlined above. Any change in the finalization of working capital will reduce or increase the cash consideration. Any changes to the preliminary estimates of the fair value of the and intangible assets or contingent consideration ("earn-out") will be adjusted to goodwill during the measurement period, with subsequent changes in estimates recorded in the Company’s Consolidated Statements of Loss and Comprehensive Loss.
The purchase price of Tacit has been preliminarily allocated to the assets acquired and liabilities assumed based on their estimated respective fair values as of May 29, 2021 with the excess purchase price allocated to goodwill. The Company’s preliminary allocation of the purchase price to the net tangible and intangible assets acquired and liabilities assumed is as follows (in thousands):
Fair market values
Current assets (including $2,967 of cash)
$9,145 
Property, plant and equipment466 
Customer relationships11,737 
Tradename1,176 
Goodwill20,603 
Total assets acquired$43,127 
Accounts payable and accrued expenses$(3,675)
Deferred taxes(2,500)
Total liabilities assumed$(6,175)
Purchase price allocation$36,952 
The preliminary fair value of identifiable intangible assets as of the date of acquisition is as follows:
(In thousands)Fair ValueUseful LifeAmortization
method
Customer relationships$11,737 12 yearsStraight-line
Tacit tradename1,176 4 yearsAccelerated
Total identified intangible assets$12,913 
As a result of the acquisition, the Company recognized a total of $20.6 million of goodwill. The purchase price was assigned to assets acquired and liabilities assumed based on their estimated fair values as of the date of acquisition, and any excess was allocated to goodwill, as shown in the table above. Goodwill represents the value the Company expects to achieve through the implementation of operational synergies and growth opportunities as the Company expands its global reach. The goodwill is not deductible for income tax purposes. 
The Company used various valuation techniques to determine fair value, with the primary techniques being discounted cash flow analysis, relief-from-royalty, and multi-period excess earnings valuation approaches, which use significant unobservable inputs, or Level 3 inputs, as defined by the fair value hierarchy. Under these valuation approaches, the Company is required to make estimates and assumptions about sales, operating margins, growth and attrition rates, royalty rates and discount rates based on budgets, business projections, anticipated future cash flows, and marketplace data.
The acquisition of Tacit was accounted for using the acquisition method of accounting, and consequently, the results of operations for Tacit are reported in the consolidated financial statements from the date of acquisition. Tacit revenue was approximately $9.5 million and net income was approximately $1.7 million from the date of acquisition to September 30, 2021.
The following unaudited pro forma information presents the combined results of operations as if the acquisition of Tacit had occurred at the beginning of 2020. Tacit pre-acquisition results have been added to the Company’s historical results. The pro forma results contained in the table below include adjustment for amortization of acquired intangibles. Any potential cost savings or other operational efficiencies that could result from the acquisition are not included in these pro forma results. 
The 2021 pro forma results include transaction related expenses incurred by the Company prior to the acquisition of $0.6 million including items such as consultant fees and other deal costs.
These pro forma results have been prepared for comparative purposes only and are not necessarily indicative of the results of operations as they would have been had the acquisitions occurred on the assumed dates, nor are they necessarily an indication of future operating results.
Nine Months Ended
September 30,
(Unaudited)20212020
Revenue$152,775 $92,462 
Net loss$(2,304)$(8,156)
Diluted loss per share$(0.04)$(0.19)
XML 23 R12.htm IDEA: XBRL DOCUMENT v3.21.2
Property and equipment, net
9 Months Ended
Sep. 30, 2021
Property, Plant and Equipment [Abstract]  
Property and equipment, net Property and equipment, net
Property and equipment consist of the following (in thousands):
Estimated
Useful
Life
(In Years)
As of
September 30,
2021
December 31,
2020
Computers and equipment
2-5
$9,241 $6,447 
Machinery and automobiles5631 551 
Furniture and fixtures
3-7
1,012 643 
Software5513 554 
Leasehold improvements
3-12
526 236 
11,923 8,430 
Less: Accumulated depreciation and amortization(7,798)(5,622)
4,125 2,809 
Capitalized software development costs
2-3
4,394 3,531 
Less: Accumulated amortization(3,124)(2,245)
1,270 1,287 
Property and equipment, net$5,395 $4,095 
XML 24 R13.htm IDEA: XBRL DOCUMENT v3.21.2
Intangible assets, net
9 Months Ended
Sep. 30, 2021
Goodwill and Intangible Assets Disclosure [Abstract]  
Intangible assets, net Intangible assets, net
Intangible assets consist of the following (in thousands):
Estimated
Useful Life
(In Years)
As of
September 30,
2021
December 31,
2020
Customer relationships
8-12
$15,971 $4,234 
Tradename
4-10
4,676 3,500 
Non-compete agreements2440 440 
21,087 8,174 
Less: Accumulated amortization(1,358)(49)
Intangible assets, net$19,729 $8,125 
XML 25 R14.htm IDEA: XBRL DOCUMENT v3.21.2
Other current liabilities
9 Months Ended
Sep. 30, 2021
Other Liabilities, Current [Abstract]  
Other current liabilities Other current liabilities
The components of other current liabilities were as follows (in thousands):
As of
September 30, 2021December 31, 2020
Customer deposits$781 $731 
Other liabilities2,068 528 
Contingent consideration payable4,926 1,947 
Total other current liabilities$7,775 $3,206 
In connection with the acquisition of Daxx Web Industries B.V.("Daxx") on December 14, 2020, the Company recorded a contingent consideration payable, which is a post-closing earn-out consideration, estimated based on fair value of $1.9 million. During the third quarter of 2021 the Company made an adjustment to the fair value of the earn-out consideration that resulted in recognition of $0.4 million of income that was classified as Other income/(expenses), net in unaudited condensed consolidated statement of loss and comprehensive loss. In connection with the acquisition of Tacit on May 29, 2021, the Company recorded a contingent consideration payable, which is a post-closing earn-out consideration, estimated based on fair value of $3.4 million.
As of September 30, 2021 the Company had payable to one of its related parties in the amount of $1.1 million that was classified as Other current liabilities in unaudited condensed consolidated balance sheet.
XML 26 R15.htm IDEA: XBRL DOCUMENT v3.21.2
Income taxes
9 Months Ended
Sep. 30, 2021
Income Tax Disclosure [Abstract]  
Income taxes Income taxesThe Company recorded income tax expense of $2.6 million and income tax benefit of $(0.1) million for the three months ended September 30, 2021 and 2020, respectively. The Company’s effective tax rate was 126.3% and 8.1% for the three months ended September 30, 2021 and 2020, respectively. The increase in effective tax rate for the three months ended September 30, 2021, as compared to the same periods in 2020 was attributable mainly to Section 162 (m) compensation deduction limitations partially offset by stock-based compensation excess tax benefit. The Company recorded income tax expense of $4.7 million and income tax benefit of $(3.6) million for the nine months ended September 30, 2021 and 2020, respectively. The Company’s effective tax rate was 829.8% and 31.3% for the nine months ended September 30, 2021 and 2020, respectively. The increase in effective tax rate for the nine months ended September 30, 2021, as compared to the same periods in 2020 was attributable mainly to Section 162 (m) compensation deduction limitations partially offset by stock-based compensation excess tax benefit. Additionally, the United Kingdom’s (“UK”) recently enacted Finance Act 2021 has increased its corporate tax rate to 25% for companies with profits exceeding 250,000 pounds, effective beginning April 1, 2023. As a result of this change in tax law, the Company remeasured its UK deferred taxes which resulted in a $0.5 million discrete tax expense in the nine months ended September 30, 2021. For the three and nine months ended September 30, 2021, the Company used a discrete effective tax rate method to calculate income taxes due to sensitivity of the forecast. Through June 30, 2021, the Company determined that small changes in estimated “ordinary” income would result in significant changes in the estimated annual effective tax rate causing material distortion in the year-to-date tax provision. As of September 30, 2021, the Company is unable to produce a reliable estimate of ordinary income for the quarter and year ending 2021 due to the inability to reliably or accurately forecast fourth quarter 2021 operating expenses. Similarly, for the three and nine months ended September 30, 2020, due to uncertainties created by the COVID-19 pandemic, the Company’s estimated annual effective tax rate method would not provide a reliable estimate and therefore was not used.
XML 27 R16.htm IDEA: XBRL DOCUMENT v3.21.2
Stockholders' equity
9 Months Ended
Sep. 30, 2021
Stockholders' Equity Note [Abstract]  
Stockholders’ equity Stockholders’ equity
The following description summarizes the material terms and provisions of the securities that the Company has authorized.
Common stock
The Company is authorized to issue 110.0 million shares of common stock. At Closing, March 5, 2020, the Company had issued 50.8 million shares of common stock. As of September 30, 2021 the Company had 65.1 million shares of common stock that were outstanding.
On July 6, 2021, the Company concluded a follow-on public offering of 11.6 million shares of its common stock, which included 5.5 million shares offered by Grid Dynamics and 6.1 million shares offered by certain selling stockholders, at a price
to the public of $15.03 per share. These amounts included shares sold upon exercise in full of the underwriters' option to purchase additional shares. J.P. Morgan Securities, LLC, William Blair & Company, L.L.C. and Cowen and Company, LLC acted as joint book-running managers for the offering. Needham & Company, LLC and Cantor Fitzgerald & Co. acted as co-managers for the offering. The net proceeds from this offering for the company, after deducting underwriting discounts and commissions and estimated offering expenses, were $78.3 million. The Company did not receive any proceeds from the sale of the shares by the selling stockholders.
Preferred Stock
As of December 31, 2019 GDI had 1.0 million shares of no par value shares of preferred stock outstanding convertible on a 1:1 basis with GDI’s common stock. At the Closing, the preferred stock outstanding was converted into common stock of the Company, par value $0.0001 per share.
Founders and underwriter shares subject to earnout provisions
At the Closing, the Company had 1.2 million shares of common stock issued and outstanding subject to earnout provisions (the “Earnout Shares”). The Earnout Shares were subject to transfer restrictions and the owners of the Earnout Shares could not sell, transfer, or otherwise dispose of their respective shares until the respective earnout provisions were achieved as described further below. The Earnout Shares have full ownership rights including the right to vote and receive dividends and other distributions thereon. Dividends and other distributions are not subject to forfeiture in accordance with the Amended and Restated Sponsor Share Letter filed with the SEC on January 26, 2020. The Earnout Shares were eligible to vest and were no longer subject to the transfer restrictions as follows:
399,999; 400,000; and 400,001 Earnout Shares would vest if the closing price of the Company’s common stock on the principal exchange on which the securities are listed or quoted have been at or about $12.00; $13.50; and $15.00 per share, respectively, for 20 trading days (which need not be consecutive) over a thirty-trading day period at any time.
As of December 31, 2020, none of the Earnout Shares were vested. On January 20, 2021, 399,999 Earnout Shares vested and are no longer subject to transfer restrictions. On March 2, 2021, 400,000 Earnout Shares vested and are no longer subject to transfer restrictions. On March 29, 2021, 400,001 Earnout Shares vested and are no longer subject to transfer restrictions. Accordingly, as of March 29, 2021, all of the Earnout Shares have vested.
Warrants
On April 12, 2021, the Staff of the SEC issued the “Staff Statement on Accounting and Reporting Considerations for Warrants Issued by Special Purpose Acquisition Companies (“SPACs”)” (the “Staff Statement”). The Staff Statement provided new guidance for all SPAC-related companies regarding the accounting and reporting for their warrants that could result in the warrants issued by SPACs being classified as a liability measured at fair value, with non-cash fair value adjustments reported in earnings at each reporting period. The Company reviewed the accounting for both its public warrants and private warrants following the Staff Statement. The Company determined that the accounting for its public warrants as equity was consistent with the Staff Statement. The Company determined that its private warrants should be accounted for as liabilities but that the related accounting errors during the year ended December 31, 2020 were not material to the required financial statements and disclosures included in its annual report on Form 10-K filed on March 5, 2021. In the three months ended March 31, 2021, the Company began accounting for the private warrants correctly, as disclosed in its quarterly report on Form 10-Q filed on May 6, 2021. During the second and third quarter of 2021, all remaining private warrants were exchanged to common stock.
From July 23, 2021 to July 26, 2021, 1.4 million public warrants were exercised with cash proceeds of $16.4 million. On July 28, 2021, the Company announced the redemption of its 2.8 million then outstanding public warrants. Any public warrants not exercised prior to 5:00 p.m., New York City time, on August 30, 2021 were redeemed at that time for $0.01 per warrant. The public warrants were exercisable at a price of $11.50 per share. Of the total of 2.8 million warrants outstanding on July 28, 2021, 2.75 million were exercised and cash proceeds generated from these exercised warrants were approximately $31.7 million. Pursuant to the terms of the agreements governing the rights of the holders of the public warrants, the Company redeemed the remaining unexercised and outstanding 19,744 public warrants on August 30, 2021 for a redemption price of $0.01 per public warrant.
As of September 30, 2021, there were no outstanding private or public warrants.
XML 28 R17.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation
9 Months Ended
Sep. 30, 2021
Share-based Payment Arrangement [Abstract]  
Stock-based compensation Stock-based compensation
2018 Stock Plan
GDI had previously adopted a stock plan in 2018 (the “2018 Stock Plan”). Under the terms of the 2018 Stock Plan, certain option grants were accelerated in full or by an additional 12 months as a result of the Business Combination. Therefore, on the date of Closing, the acceleration of vesting for 2.6 million stock options resulted in a stock compensation charge and corresponding increase to additional paid-in capital of $2.5 million. Additionally, at Closing, a percentage of outstanding vested GDI stock options were settled in exchange for cash consideration, pursuant to the terms of the Merger Agreement.
The remaining portion of outstanding vested options totaling 1.7 million and all unvested options totaling 0.1 million were automatically assumed and converted into options to purchase the Company’s common stock as of the Closing. The number of each participant’s assumed options and the exercise price were adjusted as provided in the Merger Agreement. There was no incremental compensation cost attributable to the incremental fair value of the modified options compared to the original options on the modification date. The assumed stock options will continue to be subject to the same terms and conditions, including vesting schedule terms, in accordance with the 2018 Stock Plan. Exercise prices for 2018 Stock Plan options range between $3.51 and $3.54 per share.

The following table sets forth the activity for the 2018 Stock Plan, including the conversion of the vested and unvested options, for the nine months ended September 30, 2021:
Options
Outstanding, in thousands
Balance at December 31, 20192,734 
Cashed out(829)
Forfeited(19)
Balance at March 31, 2020 (prior to exchange ratio conversion)1,887 
Converted vested balance4,314 
Converted unvested balance364 
Balance at March 6, 2020 (post to exchange ratio conversion)4,678 
Exercised in 2020(28)
Forfeited/Cancelled in 2020(50)
Options Outstanding as of December 31, 20204,600 
Exercised in quarter ended March 31, 2021(37)
Forfeited/Cancelled in quarter ended March 31, 2021(11)
Options Outstanding as of March 31, 20214,552 
Exercised in quarter ended June 30, 2021(257)
Forfeited/Cancelled in quarter ended June 30, 2021(3)
Options Outstanding as of June 30, 20214,291 
Exercised in quarter ended September 30, 2021(687)
Forfeited/Cancelled in quarter ended September 30, 2021(1)
Options Outstanding as of September 30, 20213,603 
As of September 30, 2021, a total of 0.07 million shares were forfeited, and 1.01 million shares were exercised for the total proceeds of $2.1 million in cash and 0.25 million shares net withheld for exercise price and taxes. The number of shares exercisable as of September 30, 2021 was 3.5 million with the average exercise price $3.54 per share. The intrinsic value of the 3.6 million total outstanding shares of 2018 Plan Options as of September 30, 2021, was $92.5 million with the remaining contractual term of 7.23 years. The unrecognized compensation expenses related to 2018 Plan options as of September 30, 2021 was $0.2 million, net of forfeitures, to be expensed on a straight-line basis over 1.93 years.
2020 Equity Incentive Plan
Effective March 5, 2020, our board of directors approved an equity incentive plan (the “2020 Plan”). The 2020 Plan permits the Company to grant a maximum aggregate amount of 16.3 million Incentive Stock Options, Non-Statutory Stock Options (“NSOs”), Restricted Stock, Restricted Stock Units (“RSUs”), Stock Appreciation Rights, Performance Units (“PSUs”), and Performance Shares (“PSAs”) (collectively, the “Awards”) to employees, directors, and consultants of the Company. Our board of directors or any committee appointed by the board has the authority to grant Awards. During the quarter ended September 30, 2021, our board of directors granted 0.32 million NSOs and 0.04 million RSUs. The following table represent the number of shares available for grants from 2020 Equity Incentive Plan (in thousands):
Available
for grant
Available for grant, December 31, 20209,881 
Options granted(546)
RSU granted(47)
PSU granted (100% target)(566)
Options, RSUs, and PSUs forfeited669 
Traded for taxes (returned to the pool)1,513 
Available for grant, September 30, 202110,904 
Stock Options
The total of 0.32 million NSOs shares granted during the quarter ended September 30, 2021 from 2020 Equity Incentive Plan are subject to the following time-based vesting conditions: one-fourth of the NSOs will vest on one year after the grant date; and thereafter one-sixteenth of the NSOs will vest each subsequent three-month anniversary. The NSOs have a 10-year expiration term, and once the NSOs are vested, the recipients have the right to purchase the Company’s stock at a fixed exercise price.
The grant date fair value of each NSO was estimated on the date of grant using the Black-Scholes-Merton option pricing model. The key assumptions for 2021 grants are provided in the following table.

2021
Dividend yield%
Expected volatility40 %
Risk-free interest rate0.87 %
Expected term in years6.11
Grant date fair value of common stock$18.60 
The Company used a zero percent dividend yield assumption for all Black-Scholes-Merton stock option-pricing calculations. Since the Company’s shares were not publicly traded prior to the Closing and its shares were rarely traded privately, expected volatility is estimated based on the average historical volatility of similar entities with publicly traded shares. The risk-free rate for the expected term of the options is based on the U.S. Treasury yield curve at the date of grant. Expected term is estimated using the simplified method, which takes into account vesting and contractual term. The simplified method is being used to calculate expected term instead of historical experience due to a lack of relevant historical data resulting from changes in option vesting schedules and changes in the pool of employees receiving option grants.
The following table summarizes option activity for the nine months ended September 30, 2021 (shares in thousands):
Shares
Price (1)
Term (2)
Options outstanding as of December 31, 2020 (2020 Plan)1,942 $8.38 9.22
Options granted546 $18.60 
Options exercised(102)$8.20 
Options forfeited(345)$8.67 
Options outstanding as of September 30, 2021 (2020 Plan)2,041 $11.08 8.85
(1)Represents the weighted average exercise price
(2)Represents weighted average remaining contractual term
0.49 million shares of 2020 NSO grants were vested and outstanding as of September 30, 2021. The aggregated fair value of 0.55 million NSOs granted during the nine months ended September 30, 2021 was $4.0 million or $7.35 per share. The intrinsic value of the 2.0 million total outstanding shares of 2020 Plan Options as of September 30, 2021, was $37.0 million. The total unrecognized compensation expenses related to 2020 Stock Plan options as of September 30, 2021 was $6.9 million to be expensed on a straight-line basis over the remaining 2.97 years.
Restricted Stock Units
The RSUs granted to employees generally are subject to the following time-based vesting conditions: one-fourth vest on the first anniversary of the grant; and thereafter one-sixteenth of the RSUs will vest each subsequent three-month anniversary. RSUs granted do not participate in earnings, dividends, and do not have voting rights until vested. RSUs granted to the Board in lieu of the quarterly payments vest immediately.
For the quarter ended September 30, 2021, approximately 0.08 million shares were issued upon vesting of the RSUs to the executives and 0.08 million shares were withheld to cover $2.1 million of employees’ tax obligations. The following table summarizes RSU activity for the nine months ended September 30, 2021(in thousands):
Shares
RSUs outstanding as of December 31, 2020 (2020 Plan)2,996 
RSUs granted47 
RSUs released(1,068)
RSU forfeited(291)
RSUs outstanding as of September 30, 20211,683 
The total unrecognized compensation expenses related to 2020 Stock Plan RSUs as of September 30, 2021 was $13.6 million to be expensed on a straight-line basis over 1.9 years.
Performance Stock Units
On March 2, 2021, the Company granted 0.5 million Performance Stock target shares under the 2020 Stock Plan with the maximum payout capped at 300%. The performance goals for these grants consist of:
1)Year-over-year growth in non-retail revenue for the Performance Period, which is Fiscal Year 2021, expressed as a percentage increase over the fiscal year 2020 non-retail revenue (“Revenue Growth”), and
2)Contribution Margin for the Performance Period as a percentage of Non-Retail revenue for the Performance Period.
Fifty percent (50%) of the target number of performance shares granted will vest (if at all) based on the extent of achievement of Revenue Growth for the Performance Period and the remaining fifty percent (50%) of the target number of performance shares granted will vest (if at all) based on the extent of achievement of the Contribution Margin.
Additionally, 0.02 million shares of PSU were granted on June 16th, 2021, per a consulting agreement with a former executive with the performance goals being consistent with those described above.
Performance shares will be certified and vested no later than March 1, 2022 with the payout shortly after. As of September 30, 2021, the Company assessed the vesting of the Performance Share Units as probable and the payout is estimated at 272% of the target goal. Stock-based compensation expense related to Performance Stock Units granted in 2021 was $13.1 million for the nine months ended September 30, 2021. The unrecognized expense for PSUs as of September 30, 2021, was $9.7 million.
Stock-Based Compensation Expense
The Company classifies awards issued under the stock-based compensation plans as equity. Total compensation expense for the three months ended September 30, 2021 and 2020 was $9.1 million and $5.1 million respectively. Employee stock-based compensation recognized was as follows (in thousands):
Three months ended September 30, 2021
Nine months ended
September 30,
2021202020212020
Cost of revenue$173 $66 $433 $740 
Engineering, research, and development799 621 1,970 1,678 
Sales and marketing963 808 2,207 2,545 
General and administrative7,178 3,631 16,849 8,621 
Total stock-based compensation$9,113 $5,126 $21,459 $13,584 
As of September 30, 2021, there was approximately $30.3 million of unrecognized stock-based compensation expense.
XML 29 R18.htm IDEA: XBRL DOCUMENT v3.21.2
Earnings per share
9 Months Ended
Sep. 30, 2021
Earnings Per Share [Abstract]  
Earnings per share Earnings per share
The Company computed earnings per share (“EPS”) in conformity with the two-class method required for participating securities. Undistributed earnings allocated to participating securities are subtracted from net income in determining net income attributable to common stockholders. The Company allocated income between its common and preferred shareholders only for the periods the preferred stock was outstanding, which was January 1, 2020 to March 4, 2020. There was no preferred stock outstanding from March 5, 2020 to September 30, 2021. As the Company was in a net loss position for the periods between January 1, 2020 to March 4, 2020 and March 5, 2020 to September 30, 2021, the net loss was allocated entirely to common shareholders.
All participating securities are excluded from basic weighted-average number of common shares outstanding. Diluted EPS is computed by dividing net income available to common shareholders by the weighted-average number of shares of common stock outstanding during the period increased to include the number of additional shares of common stock that would have been outstanding if the potentially dilutive securities had been issued. Potentially dilutive securities include outstanding stock options, restricted stock units, performance stock units, warrants, and convertible preferred securities. The dilutive effect of potentially dilutive securities is reflected in diluted EPS in order of dilution and by application of the treasury stock method and the if-converted method for stock-based compensation and convertible preferred securities, respectively.
The following table sets forth the computation of basic and diluted EPS of common stock as follows (in thousands except per share data):
Three months ended
September 30,
Nine months ended
September 30,
2021202020212020
Numerator for basic and diluted loss per share
Net loss$(549)$(1,117)$(4,094)$(7,879)
Denominator for basic and diluted loss per share
Weighted-average shares outstanding – basic and diluted62,61049,65156,28043,074
Net income/(loss) per share
Basic$(0.01)$(0.02)$(0.07)$(0.18)
Diluted$(0.01)$(0.02)$(0.07)$(0.18)
The following table represents the number of share equivalents outstanding during the period that were excluded from the calculation of diluted net loss per share attributable to common stockholders because including them would have had an anti-dilutive effect.
Three months ended
September 30,
Nine months ended
September 30,
Potential common shares (in ‘000s)2021202020212020
Convertible preferred stock— — — 1,048 
Stock options to purchase common stock6,486 6,467 7,088 8,676 
Restricted stock units1,840 2,963 3,042 2,993 
Performance stock units1,452 1,292 1,452 1,292 
Warrants to purchase common stock4,208 11,347 11,347 11,347 
Total13,986 22,069 22,929 25,356 
XML 30 R19.htm IDEA: XBRL DOCUMENT v3.21.2
Commitments and contingencies
9 Months Ended
Sep. 30, 2021
Commitments and Contingencies Disclosure [Abstract]  
Commitments and contingencies Commitments and contingencies
Legal Matters
The Company is subject to legal proceedings and claims that arise in the ordinary course of its business. Management evaluates each claim and provides for potential loss when the claim is probable to be paid and reasonably estimable. While adverse decisions in certain of these litigation matters, claims and administrative proceedings could have a material effect on a particular period’s results of operations, subject to the uncertainties inherent in estimating future costs for contingent liabilities, management believes that any future accruals with respect to these currently known contingencies would not have a material effect on the financial condition, liquidity or cash flows of the Company. There were no amounts required to be reflected in these consolidated financial statements related to contingencies.
XML 31 R20.htm IDEA: XBRL DOCUMENT v3.21.2
Subsequent events
9 Months Ended
Sep. 30, 2021
Subsequent Events [Abstract]  
Subsequent events Subsequent eventsThe Company performed its subsequent event procedures through November 4, 2021, the date these condensed consolidated financial statements were issued. In October 2021 the Company finalized its Business Combination post-Close share adjustment. As a result of this additional 0.1 million shares were issued and 0.9 million shares were released from escrow. Please refer to Note 3 for details.
XML 32 R21.htm IDEA: XBRL DOCUMENT v3.21.2
Basis of presentation and summary of significant accounting policies (Policies)
9 Months Ended
Sep. 30, 2021
Accounting Policies [Abstract]  
Basis of presentation
Basis of presentation
The Business Combination was accounted for as a reverse recapitalization in accordance with U.S. GAAP. Although ChaSerg was the legal acquirer, for accounting purposes, GDI was deemed to be the accounting acquirer. GDI was determined to be the accounting acquirer based on evaluation of the following facts and circumstances:
GDI holds executive management roles for the Company and those individuals are responsible for the day-to-day operations;
GDI’s former owners have the largest minority voting rights in the Company;
From a revenue and business operation standpoint, GDI was the larger entity in terms of relative size;
GDI’s San Ramon, CA headquarters are the headquarters of the Company; and
The intended strategy of the Company will continue GDI’s strategy of driving enterprise-level digital transformation in the Fortune 1000 companies.
In conjunction with the Business Combination, outstanding shares of GDI were converted into common stock of the Company, par value $0.0001 per share, shown as a recapitalization, and the net assets of ChaSerg were acquired at historical cost, with no goodwill or other intangible assets recorded. GDI was deemed to be the predecessor of the Company, and the consolidated assets and liabilities and results of operations prior to the Closing (for the years ended December 31, 2019 and 2018 and the period from January 1, 2020 to March 5, 2020) are those of GDI. ChaSerg’s assets and liabilities, which include net cash from the trust of $85.1 million, and results of operations were consolidated with GDI beginning on the Closing.
In accordance with guidance applicable to these circumstances, the equity structure has been restated in all comparative periods up to the Closing Date, to reflect the number of shares of the Company’s common stock, $0.0001 par value per share, issued to GDI shareholders in connection with the recapitalization transaction. As such, the shares and corresponding capital amounts and earnings per share related to GDI preferred and common stock prior to the Business Combination have been retroactively restated as shares reflecting the exchange ratio established in the Business Combination.
Principles of consolidation
Principles of consolidation
The accompanying condensed financial statements include the accounts of the Company and all of its subsidiaries that are directly or indirectly owned or controlled. Intercompany transactions and balances have been eliminated upon consolidation.
Use of estimates
Use of estimates
The preparation of the consolidated condensed financial statements in accordance with U.S. GAAP requires the Company to make estimates and assumptions that affect the amounts reported in the condensed consolidated financial statements and accompanying notes. Actual results could differ from these estimates and such differences could be material. Significant estimates include allowances for receivables, calculation of accrued liabilities, capitalization of internally developed software, stock-based compensation, contingent consideration payable, determination of fair value, useful lives and recoverability of intangible assets and goodwill, determination of provision for income taxes and uncertain tax positions.
Certain significant risks and uncertainties
Certain significant risks and uncertainties
The Company is subject to risks, including but not limited to customer concentration, concentrations of credit and foreign currency risks. Refer to the section below for additional information. Additionally, the Company has been impacted by the coronavirus (“COVID-19”) pandemic. The global pandemic of COVID-19 has negatively affected the U.S. and global economy, disrupted global supply chains, resulted in significant travel and transport restrictions, including mandated closures and orders to “shelter-in-place,” and created significant disruption of the financial market. In 2020 the COVID-19 pandemic impacted the Company’s revenues, and the Company’s business continues to be exposed to risks and uncertainties related to the pandemic. The impact of the COVID-19 pandemic had been more pronounced with the Company’s retail customers, which depended on keeping their stores open. Additionally, in situations where the Company’s customers encountered financial difficulties, there was a risk associated with the Company’s inability to collect money from customers. In 2020 the Company took several actions to deal with the COVID-19 pandemic. These included enabling its employees to work from home, company-wide salary and compensation cuts, hiring freezes, and suspending all non-essential travel. Some of these actions such as working from home as well as suspending all non-essential travel continues to be currently in place. As the Company's business recovered in 2021, the Company discontinued some of the cost saving measures such as compensation cuts and hiring freezes. The Company now is facing the opposite challenges including employee retention and shortage of talent on the job market. The ultimate impact and the extent to which the COVID-19 pandemic will continue to affect the business, results of operation and financial condition is difficult to predict and depends on numerous evolving factors outside of the Company’s control including: the duration and scope of the pandemic, including from renewed waves and new variants; government, social, business and other actions that have been and will be taken in response to the pandemic; and the effect of the pandemic on short and long-term general economic conditions.
Concentrations of credit risk and significant customers Concentrations of credit risk and significant customersThe Company records its accounts receivable and unbilled receivables at their face amounts less allowances. Accounts receivable and unbilled receivables are generally dispersed across the Company’s customers in proportion to their revenue. Two customers individually exceeded 10% of the Company’s accounts receivable balance as of September 30, 2021 and three customers individually exceeded 10% of the Company’s accounts receivable balance as of December 31, 2020. Two customers individually exceeded 10% of the unbilled receivables as of September 30, 2021 and three customers individually exceeded 10% of the unbilled receivables as of December 31, 2020. Two customers individually accounted for greater than 10% of the sales for the three and nine months ended September 30, 2021 and 2020, respectively.
Cash and cash equivalents
Cash and cash equivalents
The Company considers cash equivalents to be highly liquid investments with original maturities of three months or less from the date of purchase. Cash equivalents are stated at cost, which approximates fair value. At times, cash deposits with banks may exceed federally insured limits.
Accounts receivable and allowance for doubtful accounts Accounts receivable and allowance for doubtful accountsAccounts receivable, less allowance for doubtful accounts, reflect the net realizable value of receivables and approximate fair value. The Company maintains an allowance against accounts receivable for the estimated probable losses on uncollectible accounts. The allowance is based upon historical loss experience, current economic conditions within the industries the Company serves as well as determination of the specific risk related to certain customers. Accounts receivable are charged off against the reserve when, in management’s estimation, further collection efforts would not result in a reasonable likelihood of receipt.
Unbilled receivables Unbilled receivablesGenerally, the Company will not bill customers until the services have been completed. From time-to-time, a service period may overlap with a period-end and the unbilled receivables represent amounts for services performed through period-end, but not yet billed. The unbilled receivable represents the amount expected to be billed and collected for services performed through period-end in accordance with contract terms.
Goodwill
Goodwill
Goodwill represents the excess of purchase price over the fair value of the net assets of businesses acquired. On an annual basis, the Company makes a qualitative assessment to determine if it is more likely than not that the fair value of the reporting unit is less than its carrying amount, including goodwill. If the Company determines that the fair value of the reporting unit is less than its carrying amount, it will perform a quantitative analysis; otherwise, no further evaluation is necessary. For the quantitative impairment assessment, the Company compares the fair value of the reporting unit to its carrying value, including goodwill. The Company uses the discounted cash flow method of the income approach and market approach to determine the fair value of the reporting unit. If the fair value of the reporting unit exceeds the carrying value of the net assets assigned to that unit, goodwill is not impaired, and no further testing is performed. If the carrying value of the net assets assigned to the reporting unit exceeds the fair value of the reporting unit, then the Company will recognize a loss equal to the excess, limited to the total amount of goodwill allocated to that reporting unit. Impairments, if any, are charged directly to earnings. As of September 30, 2021, the Company has a single reporting unit and determined there were no indicators of impairment.
Intangible assets
Intangible assets
Finite-lived intangible assets are stated at cost less accumulated amortization. Amortization is computed on the straight-line basis over the asset’s useful lives ranging between 2 and 12 years. Intangible assets are evaluated for impairment whenever events or changes in circumstances indicate that the carrying value of the assets may not be fully recoverable. If facts and circumstances indicate that the carrying value might not be recoverable, projected undiscounted net cash flows associated with the related asset or group of assets over their estimated remaining useful lives is compared against their respective carrying amounts. If an asset is found to be impaired, the impairment charge will be measured as the amount by which the carrying amount of an entity exceeds its fair value. As of September 30, 2021, the Company determined there were no indicators of impairment.
Revenue recognition
Revenue recognition
The Company accounts for a contract with a customer when 1) the parties to the contract have approved the contract and are committed to performing their respective obligations, 2) the contract identifies each party’s rights regarding the goods or services to be transferred, 3) the contract identifies the payment terms for the goods or services to be transferred, 4) the contract has commercial substance, and 5) collection of substantially all consideration pursuant to the contract is probable.
The Company derives its revenue from offering a suite of digital engineering and information technology (“IT”) consulting services, including digital transformation strategy, emerging technology, lean labs and legacy system replatforming. For most contracts, the Company uses master agreements to govern the overall relevant terms and conditions of the business arrangement between the Company and its customers. When the Company and a customer enter into a Master Services Agreement (“MSA”), purchases are generally made by the customer via a statement of work (“SOW”) which explicitly references the MSA and specifies the services to be delivered. Fees for these contracts may be in the form of time-and-materials or fixed-fee arrangements. The majority of the Company’s revenues are generated under time-and-material contracts which are billed using hourly rates to determine the amounts to be charged directly to the customer. Fees are billed and collected as stipulated in the contract, and revenue is recognized as services are performed. If there is an uncertainty about the receipt of payment for the services, revenue is recognized to the extent that a significant reversal of revenue would not be probable.
Consulting services revenue is a single performance obligation earned through a series of distinct daily services and may include services such as those described above. The Company recognizes revenue for services over time as the customer simultaneously receives and consumes the benefits as the Company performs IT consulting services. For revenue contracts, the customer derives value from the Company providing daily consulting services, and the value derived corresponds to the labor hours expended. Therefore, the Company measures the progress and recognizes revenue using an effort-based input method. For fixed fee contracts, the Company recognizes revenue as the work is performed, the monthly calculation of which is based upon actual labor hours incurred and level of effort expended throughout the duration of the contract.
For time-and-material contracts, the Company applies the variable consideration allocation exception. Therefore, instead of allocating the variable consideration to the entire performance obligation, the Company determined the variable consideration should be allocated to each distinct service to which the variable consideration relates, which is providing the customer daily consulting services. The Company also offers volume discounts or early settlement discounts. Volume discounts apply once the customer reaches certain contractual spend thresholds. Early settlement discounts are issued contingent upon the timing of the payment from the customer. If the consideration promised in a contract includes a variable amount, the Company only includes estimated amounts of consideration in the transaction price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. These estimates may require management to make subjective judgments and to make estimates about the effects of matters inherently uncertain. The determination of whether to constrain consideration in the transaction price are based on information (historical, current and forecasted) that is reasonably available to the Company, taking into consideration the type of customer, the type of transaction and the specific facts and circumstances of each arrangement. Although the Company believes that its approach in developing estimates and its reliance on certain judgments and underlying inputs is reasonable, actual results may differ from management’s estimates, judgments and assumptions. These estimates have historically not been material to the consolidated financial statements.
Remaining performance obligation
ASC 606 requires that the Company disclose the aggregate amount of transaction price that is allocated to performance obligations that have not yet been satisfied as of September 30, 2021. This disclosure is not required for:
1)contracts with an original duration of one year or less, including contracts that can be terminated for convenience without a substantive penalty,
2)contracts for which the Company recognizes revenues based on the right to invoice for services performed,
3)variable consideration allocated entirely to a wholly unsatisfied performance obligation or to a wholly unsatisfied promise to transfer a distinct good or service that forms part of a single performance obligation in accordance with ASC 606-10-25-14(b), for which the criteria in ASC 606-10-32-40 have been met, or
4)variable consideration in the form of a sales-based or usage-based royalty promised in exchange for a license of intellectual property.
All of the Company’s contracts met one or more of these exemptions as of September 30, 2021.
Stock-based compensation expense Stock-based compensation expenseStock-based compensation expense is measured based on the grant-date fair value of the share-based awards. Forfeitures are recognized as incurred. The Company estimates stock options grant-date fair value using the Black-Scholes-Merton option pricing model. The model requires management to make a number of key assumptions including expected volatility, expected term, risk-free interest rate, and expected dividends. The Company evaluates the assumptions used to value its share-based awards on each grant date. The fair market value of Grid Dynamics stock is determined based on the closing price on NASDAQ on the measurement date. The Company amortizes the grant-date fair value of all share-based compensation awards over the employee’s requisite service period for the entire award on a straight-line basis, which is generally the vesting period. For an award with graded vesting that is subject only to a service condition (e.g., time-based vesting), the Company uses the straight-line attribution method under ASC 718 under which they recognize compensation cost on a straight-line basis over the total requisite service period for the entire award (i.e., over the requisite service period of the last separately-vesting tranche of the award). Additionally, the Company applies the “floor” concept so that the amount of compensation cost that is recognized as of any date is at least equal to the grant-date fair value of the vested portion of the award on that date. That is, if the straight-line expense recognized to date is less than the grant date fair value of the award that is legally vested at that date, the company will increase its recognized expense to at least equal the fair value of the vested amount.
Income taxes
Income taxes
The Company follows the asset and liability method of accounting for income taxes. Under this method, deferred income taxes are recognized for the tax consequences of temporary differences between the financial statement carrying amounts and the tax basis of the assets and liabilities. The determination of the provision for income taxes requires significant judgment, the use of estimates and the interpretation and application of complex tax laws. The provision for income taxes reflects a combination of income earned and taxed in the various U.S. federal and state, international and other jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for tax contingencies or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective tax rate.
In assessing the realizability of deferred tax assets, management considers whether it is more likely than not that some portion, or all, of the deferred tax assets will not be realized. Management considers all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes prior earnings history, the scheduled reversal of deferred tax liabilities, projected future taxable income, carryback and carryforward periods of tax attributes, and tax planning strategies that could potentially enhance the likelihood of realization of a deferred tax asset in making this assessment. The weight given to the positive and negative evidence is commensurate with the extent to which the evidence may be objectively verified.
The Company evaluates for uncertain tax positions at each balance sheet date. When it is more likely than not that a position will be sustained upon examination by a tax authority that has full knowledge of all relevant information, the Company measures the amount of tax benefit from the position and records the largest amount of tax benefit that is greater than 50% likely of being realized after settlement with a tax authority. The Company’s policy for interest and/or penalties related to underpayments of income taxes is to include interest and penalties in income tax expense.
Recently adopted accounting pronouncements and recently issued accounting pronouncements
Recently adopted accounting pronouncements
Changes to U.S. GAAP are established by the Financial Accounting Standards Board (the “FASB”), in the form of Accounting Standards Updates (“ASUs”), to the FASB’s ASC. The Company has elected not to opt out of the extended transition period and thus when a standard is issued or revised and it has different application dates for public or private companies, the Company, as an emerging growth company, can adopt the new or revised standard at the time private companies adopt the new or revised standard.
In December 2019, the FASB issued Accounting Standard Update No. 2019-12, Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes (ASU 2019-12), which simplifies the accounting for income taxes by removing certain exceptions to the general principles and also simplification of areas such as franchise taxes, step-up in tax basis goodwill, separate entity financial statements and interim recognition of enactment of tax laws or rate changes. The update is effective for fiscal years and interim periods within those fiscal years beginning after December 15, 2020, and early adoption is permitted. The Company adopted the standard as of January 1, 2021 and has determined that the adoption of this guidance did not have a material effect on the consolidated financial statements.
Recently issued accounting pronouncements
The Company considered the applicability and impact of all ASUs. ASUs not listed below were assessed and determined to be either not applicable or are expected to have minimal impact on the consolidated financial statements.
In February 2016, the FASB issued ASU No. 2016-2, Leases. ASU 2016-2 requires lessees to put most leases on their balance sheet while recognizing expense in a manner similar to existing accounting. ASU 2016-2 states that a lessee would recognize a lease liability for the obligation to make lease payments and a right-to-use asset for the right to use the underlying asset for the lease term. The standard allows for two methods of adoption to recognize and measure leases: retrospectively to each prior period presented in the financial statements with the cumulative effect of initially applying the guidance recognized at the beginning of the earliest comparative period presented or retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. Both adoption methods include a number of optional practical expedients that entities may elect to apply. The Company will adopt the standard retrospectively at the beginning of the period of adoption with the cumulative effect of initially applying the guidance recognized at the beginning of the period in which the guidance is first applied. The new accounting guidance is effective for the Company for fiscal periods beginning after December 15, 2021. The Company expects the impact to be material but has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.
In June 2016, the FASB issued ASU 2016-13, Financial Instruments-Credit Losses (Topic 326) — Measurement of Credit Losses on Financial Instruments. Topic 326 was subsequently amended by ASU 2019-4, Codification Improvements to Topic 326, Financial Instruments — Credit Losses, ASU 2019-5, Financial Instruments — Credit Losses (Topic 326): Targeted Transition Relief, and clarified the guidance with the release of ASU 2020-2 Financial Instruments—Credit Losses (Topic 326) and Leases (Topic 842). These ASUs replace the current incurred loss impairment methodology with a methodology that reflects expected credit losses measured at amortized cost and certain other instruments, including loans, held-to-maturity debt securities, net investments in leases, and off-balance sheet credit exposures. The update is effective for fiscal years beginning after December 15, 2022, and interim periods with fiscal years after December 15, 2022. The Company has not yet determined the impact that the adoption of this guidance will have on the consolidated financial statements.
In March 2020, FASB issued ASU No. 2020-3, Codification to Financial Instruments. This ASU improves and clarifies various financial instruments topics, including the current expected credit losses standard issued in 2016. The ASU includes seven different issues that describe the areas of improvement and the related amendments to U.S. GAAP, intended to make the standards easier to understand and apply by eliminating inconsistencies and providing clarifications. The amendments related to Issue 1, Issue 2, Issue 3, Issue 4, and Issue 5 were effective upon issuance of this update. The new guidance did not have a material impact on the consolidated financial statements. The amendments related to Issue 6 and Issue 7 are effective for the Company the earlier of January 1, 2023 or when the Company adopts ASU 2016-13, if early adopted. The Company is currently evaluating the impact these topics will have on the consolidated financial statements.
XML 33 R22.htm IDEA: XBRL DOCUMENT v3.21.2
Basis of presentation and summary of significant accounting policies (Tables)
9 Months Ended
Sep. 30, 2021
Accounting Policies [Abstract]  
Schedule of accounts receivable and allowance for doubtful accounts
As of
September 30,
2021
December 31,
2020
(in thousands)
Trade accounts receivable$31,027 $17,308 
Allowance for doubtful accounts(254)(418)
Total trade accounts receivable, net$30,773 $16,890 
XML 34 R23.htm IDEA: XBRL DOCUMENT v3.21.2
Business combination (Tables)
9 Months Ended
Sep. 30, 2021
Business Combination and Asset Acquisition [Abstract]  
Schedule of business acquisitions, by acquisition The following represents the aggregate consideration for the Business Combination ( in thousands except for per share amount):
Shares transferred at Closing27,006 
Less: Post-Closing share adjustment(857)
Total shares transferred at Closing26,149 
Value per share$10.19 
Total share consideration$266,459 
Plus: Cash transferred to GDI stockholders130,000 
Closing merger consideration$396,459 
XML 35 R24.htm IDEA: XBRL DOCUMENT v3.21.2
Acquisition of Tacit Knowledge Inc. (Tables)
9 Months Ended
Sep. 30, 2021
Business Combination and Asset Acquisition [Abstract]  
Schedule of business acquisition, assets acquired and liabilities assumed The Company’s preliminary allocation of the purchase price to the net tangible and intangible assets acquired and liabilities assumed is as follows (in thousands):
Fair market values
Current assets (including $2,967 of cash)
$9,145 
Property, plant and equipment466 
Customer relationships11,737 
Tradename1,176 
Goodwill20,603 
Total assets acquired$43,127 
Accounts payable and accrued expenses$(3,675)
Deferred taxes(2,500)
Total liabilities assumed$(6,175)
Purchase price allocation$36,952 
Schedule of business acquisition, finite-lived intangibles
The preliminary fair value of identifiable intangible assets as of the date of acquisition is as follows:
(In thousands)Fair ValueUseful LifeAmortization
method
Customer relationships$11,737 12 yearsStraight-line
Tacit tradename1,176 4 yearsAccelerated
Total identified intangible assets$12,913 
Schedule of business acquisition, pro forma information
These pro forma results have been prepared for comparative purposes only and are not necessarily indicative of the results of operations as they would have been had the acquisitions occurred on the assumed dates, nor are they necessarily an indication of future operating results.
Nine Months Ended
September 30,
(Unaudited)20212020
Revenue$152,775 $92,462 
Net loss$(2,304)$(8,156)
Diluted loss per share$(0.04)$(0.19)
XML 36 R25.htm IDEA: XBRL DOCUMENT v3.21.2
Property and equipment, net (Tables)
9 Months Ended
Sep. 30, 2021
Property, Plant and Equipment [Abstract]  
Schedule of property and equipment
Property and equipment consist of the following (in thousands):
Estimated
Useful
Life
(In Years)
As of
September 30,
2021
December 31,
2020
Computers and equipment
2-5
$9,241 $6,447 
Machinery and automobiles5631 551 
Furniture and fixtures
3-7
1,012 643 
Software5513 554 
Leasehold improvements
3-12
526 236 
11,923 8,430 
Less: Accumulated depreciation and amortization(7,798)(5,622)
4,125 2,809 
Capitalized software development costs
2-3
4,394 3,531 
Less: Accumulated amortization(3,124)(2,245)
1,270 1,287 
Property and equipment, net$5,395 $4,095 
XML 37 R26.htm IDEA: XBRL DOCUMENT v3.21.2
Intangible assets, net (Tables)
9 Months Ended
Sep. 30, 2021
Goodwill and Intangible Assets Disclosure [Abstract]  
Schedule of Intangible assets
Intangible assets consist of the following (in thousands):
Estimated
Useful Life
(In Years)
As of
September 30,
2021
December 31,
2020
Customer relationships
8-12
$15,971 $4,234 
Tradename
4-10
4,676 3,500 
Non-compete agreements2440 440 
21,087 8,174 
Less: Accumulated amortization(1,358)(49)
Intangible assets, net$19,729 $8,125 
XML 38 R27.htm IDEA: XBRL DOCUMENT v3.21.2
Other current liabilities (Tables)
9 Months Ended
Sep. 30, 2021
Other Liabilities, Current [Abstract]  
Schedule of other current liabilities
The components of other current liabilities were as follows (in thousands):
As of
September 30, 2021December 31, 2020
Customer deposits$781 $731 
Other liabilities2,068 528 
Contingent consideration payable4,926 1,947 
Total other current liabilities$7,775 $3,206 
XML 39 R28.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation (Tables)
9 Months Ended
Sep. 30, 2021
Share-based Payment Arrangement [Abstract]  
Schedule of conversion of the vested and unvested options
The following table sets forth the activity for the 2018 Stock Plan, including the conversion of the vested and unvested options, for the nine months ended September 30, 2021:
Options
Outstanding, in thousands
Balance at December 31, 20192,734 
Cashed out(829)
Forfeited(19)
Balance at March 31, 2020 (prior to exchange ratio conversion)1,887 
Converted vested balance4,314 
Converted unvested balance364 
Balance at March 6, 2020 (post to exchange ratio conversion)4,678 
Exercised in 2020(28)
Forfeited/Cancelled in 2020(50)
Options Outstanding as of December 31, 20204,600 
Exercised in quarter ended March 31, 2021(37)
Forfeited/Cancelled in quarter ended March 31, 2021(11)
Options Outstanding as of March 31, 20214,552 
Exercised in quarter ended June 30, 2021(257)
Forfeited/Cancelled in quarter ended June 30, 2021(3)
Options Outstanding as of June 30, 20214,291 
Exercised in quarter ended September 30, 2021(687)
Forfeited/Cancelled in quarter ended September 30, 2021(1)
Options Outstanding as of September 30, 20213,603 
Schedule of share-based payment arrangement activity The following table represent the number of shares available for grants from 2020 Equity Incentive Plan (in thousands):
Available
for grant
Available for grant, December 31, 20209,881 
Options granted(546)
RSU granted(47)
PSU granted (100% target)(566)
Options, RSUs, and PSUs forfeited669 
Traded for taxes (returned to the pool)1,513 
Available for grant, September 30, 202110,904 
Schedule of estimated grant using the black-scholes The key assumptions for 2021 grants are provided in the following table.
2021
Dividend yield%
Expected volatility40 %
Risk-free interest rate0.87 %
Expected term in years6.11
Grant date fair value of common stock$18.60 
Schedule of option activity
The following table summarizes option activity for the nine months ended September 30, 2021 (shares in thousands):
Shares
Price (1)
Term (2)
Options outstanding as of December 31, 2020 (2020 Plan)1,942 $8.38 9.22
Options granted546 $18.60 
Options exercised(102)$8.20 
Options forfeited(345)$8.67 
Options outstanding as of September 30, 2021 (2020 Plan)2,041 $11.08 8.85
(1)Represents the weighted average exercise price
(2)Represents weighted average remaining contractual term
Schedule of restricted stock unit activity The following table summarizes RSU activity for the nine months ended September 30, 2021(in thousands):
Shares
RSUs outstanding as of December 31, 2020 (2020 Plan)2,996 
RSUs granted47 
RSUs released(1,068)
RSU forfeited(291)
RSUs outstanding as of September 30, 20211,683 
Schedule of employee stock-based compensation recognized Employee stock-based compensation recognized was as follows (in thousands):
Three months ended September 30, 2021
Nine months ended
September 30,
2021202020212020
Cost of revenue$173 $66 $433 $740 
Engineering, research, and development799 621 1,970 1,678 
Sales and marketing963 808 2,207 2,545 
General and administrative7,178 3,631 16,849 8,621 
Total stock-based compensation$9,113 $5,126 $21,459 $13,584 
XML 40 R29.htm IDEA: XBRL DOCUMENT v3.21.2
Earnings per share (Tables)
9 Months Ended
Sep. 30, 2021
Earnings Per Share [Abstract]  
Schedule of Computation of Basic and Diluted Earnings Per Share
The following table sets forth the computation of basic and diluted EPS of common stock as follows (in thousands except per share data):
Three months ended
September 30,
Nine months ended
September 30,
2021202020212020
Numerator for basic and diluted loss per share
Net loss$(549)$(1,117)$(4,094)$(7,879)
Denominator for basic and diluted loss per share
Weighted-average shares outstanding – basic and diluted62,61049,65156,28043,074
Net income/(loss) per share
Basic$(0.01)$(0.02)$(0.07)$(0.18)
Diluted$(0.01)$(0.02)$(0.07)$(0.18)
Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share
The following table represents the number of share equivalents outstanding during the period that were excluded from the calculation of diluted net loss per share attributable to common stockholders because including them would have had an anti-dilutive effect.
Three months ended
September 30,
Nine months ended
September 30,
Potential common shares (in ‘000s)2021202020212020
Convertible preferred stock— — — 1,048 
Stock options to purchase common stock6,486 6,467 7,088 8,676 
Restricted stock units1,840 2,963 3,042 2,993 
Performance stock units1,452 1,292 1,452 1,292 
Warrants to purchase common stock4,208 11,347 11,347 11,347 
Total13,986 22,069 22,929 25,356 
XML 41 R30.htm IDEA: XBRL DOCUMENT v3.21.2
Background and nature of operations (Details)
Sep. 30, 2021
$ / shares
Accounting Policies [Abstract]  
Exercise price (in dollars per share) $ 11.50
XML 42 R31.htm IDEA: XBRL DOCUMENT v3.21.2
Basis of presentation and summary of significant accounting policies - Narrative (Details)
$ / shares in Units, $ in Thousands
3 Months Ended 9 Months Ended 12 Months Ended
Mar. 05, 2020
USD ($)
$ / shares
Sep. 30, 2021
USD ($)
customer
$ / shares
Sep. 30, 2020
customer
Sep. 30, 2021
USD ($)
customer
reportingUnit
$ / shares
Sep. 30, 2020
customer
Dec. 31, 2020
USD ($)
customer
$ / shares
Concentration Risk [Line Items]            
Common stock, par value (in dollars per share) | $ / shares $ 0.0001 $ 0.0001   $ 0.0001   $ 0.0001
Cash proceeds from trust account | $ $ 85,100          
Allowance for doubtful accounts | $   $ 254   $ 254   $ 418
Unbilled receivables | $   $ 4,883   $ 4,883   $ 1,799
Number of reporting units | reportingUnit       1    
Accounts Receivable | Customer Concentration Risk            
Concentration Risk [Line Items]            
Number of major customers | customer       2   3
Unbilled Receivables | Customer Concentration Risk            
Concentration Risk [Line Items]            
Number of major customers | customer       2   3
Sales | Customer Concentration Risk            
Concentration Risk [Line Items]            
Number of major customers | customer   2 2 2 2  
Minimum            
Concentration Risk [Line Items]            
Intangible assets useful life       2 years    
Maximum            
Concentration Risk [Line Items]            
Intangible assets useful life       12 years    
XML 43 R32.htm IDEA: XBRL DOCUMENT v3.21.2
Basis of presentation and summary of significant accounting policies - Schedule of accounts receivable and allowance for doubtful accounts (Details) - USD ($)
$ in Thousands
Sep. 30, 2021
Dec. 31, 2020
Accounting Policies [Abstract]    
Trade accounts receivable $ 31,027 $ 17,308
Allowance for doubtful accounts (254) (418)
Total trade accounts receivable, net $ 30,773 $ 16,890
XML 44 R33.htm IDEA: XBRL DOCUMENT v3.21.2
Business combination - Additional Information (Details)
$ / shares in Units, shares in Thousands, $ in Thousands
Mar. 05, 2020
USD ($)
$ / shares
shares
Sep. 30, 2021
$ / shares
Dec. 31, 2020
$ / shares
Business Acquisition [Line Items]      
Common stock, par value (in dollars per share) | $ / shares $ 0.0001 $ 0.0001 $ 0.0001
Acquisition related costs | $ $ 4,700    
Additional Paid-In-Capital, Reduction Of Proceeds      
Business Acquisition [Line Items]      
Acquisition related costs | $ 4,100    
General and administrative      
Business Acquisition [Line Items]      
Acquisition related costs | $ $ 600    
ChaSerg      
Business Acquisition [Line Items]      
Stock redeemed, price per share (in usd per share) | $ / shares $ 10.21    
GDI | ChaSerg      
Business Acquisition [Line Items]      
Number of common stock shares acquired (in shares) 50,800    
Common stock, par value (in dollars per share) | $ / shares $ 0.0001    
Number of warrants acquired (in shares) 11,300    
Consideration transferred | $ $ 396,459    
Payments to acquire business | $ $ 130,000    
Shares transferred at closing (in shares) 27,006    
Price per share (in usd per share) | $ / shares $ 10.19    
Post closing share adjustment (in shares) 857    
Options, vested, outstanding and unexercised (in shares) 4,300    
Earnout shares vested (in shares) 1,700    
Options, vested, exchange ratio 248.00%    
Options, nonvested, outstanding and unexercised (in shares) 400    
Earnout shares, nonvested (in shares) 100    
Options, nonvested, exchange ratio 248.00%    
Stock redeemed (in shares) 100    
GDI | ChaSerg | Adjustment      
Business Acquisition [Line Items]      
Exchange ratio 1.685    
2017 Acquisition | Cost Of Revenue and Operating Expenses      
Business Acquisition [Line Items]      
Acquisition related costs | $ $ 3,400    
XML 45 R34.htm IDEA: XBRL DOCUMENT v3.21.2
Business combination - Schedule of consideration for business combination (Details) - GDI - ChaSerg
$ / shares in Units, shares in Thousands, $ in Thousands
Mar. 05, 2020
USD ($)
$ / shares
shares
Business Acquisition [Line Items]  
Shares transferred at closing (in shares) | shares 27,006
Less: Post-Closing share adjustment (in shares) | shares (857)
Total shares transferred at closing (in shares) | shares 26,149
Value per share (in usd per share) | $ / shares $ 10.19
Total share consideration | $ $ 266,459
Plus: Cash transferred to GDI stockholders | $ 130,000
Closing merger consideration | $ $ 396,459
XML 46 R35.htm IDEA: XBRL DOCUMENT v3.21.2
Acquisition of Tacit Knowledge Inc. - Narrative (Details)
$ in Thousands
9 Months Ended
May 29, 2021
USD ($)
employee
Mar. 05, 2020
USD ($)
Sep. 30, 2021
USD ($)
Dec. 31, 2020
USD ($)
Sep. 30, 2020
USD ($)
Business Acquisition [Line Items]          
Contingent consideration for acquisition of businesses     $ 2,979   $ 0
Goodwill     35,358 $ 14,690  
Acquisition related costs   $ 4,700      
Tactic Knowledge Inc.          
Business Acquisition [Line Items]          
Percentage of voting interests acquired 100.00%        
Number of employees acquired | employee 180        
Consideration transferred $ 37,000        
Payments to acquire business 33,600        
Contingent consideration for acquisition of businesses 3,400        
Maximum contingent consideration $ 5,000        
Estimated future operating results period 12 months        
Goodwill $ 20,603        
Pro forma information, revenue of acquiree     9,500    
Pro forma information, earnings of acquiree     $ 1,700    
Acquisition related costs $ 600        
XML 47 R36.htm IDEA: XBRL DOCUMENT v3.21.2
Acquisition of Tacit Knowledge Inc. - Assets acquired and liabilities assumed (Details) - USD ($)
$ in Thousands
Sep. 30, 2021
May 29, 2021
Dec. 31, 2020
Business Acquisition [Line Items]      
Goodwill $ 35,358   $ 14,690
Tactic Knowledge Inc.      
Business Acquisition [Line Items]      
Current assets (including $2,967 of cash)   $ 9,145  
Property, plant and equipment   466  
Identified intangible assets   12,913  
Goodwill   20,603  
Total assets acquired   43,127  
Accounts payable and accrued expenses   (3,675)  
Deferred taxes   (2,500)  
Total liabilities assumed   (6,175)  
Purchase price allocation   36,952  
Cash and cash equivalents   2,967  
Tactic Knowledge Inc. | Customer relationships      
Business Acquisition [Line Items]      
Identified intangible assets   11,737  
Tactic Knowledge Inc. | Tradename      
Business Acquisition [Line Items]      
Identified intangible assets   $ 1,176  
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.21.2
Acquisition of Tacit Knowledge Inc. - Intangible assets acquired (Details) - Tactic Knowledge Inc.
$ in Thousands
May 29, 2021
USD ($)
Business Acquisition [Line Items]  
Total identified intangible assets $ 12,913
Customer relationships  
Business Acquisition [Line Items]  
Total identified intangible assets $ 11,737
Useful Life 12 years
Tradename  
Business Acquisition [Line Items]  
Total identified intangible assets $ 1,176
Useful Life 4 years
XML 49 R38.htm IDEA: XBRL DOCUMENT v3.21.2
Acquisition of Tacit Knowledge Inc. - Pro forma information (Details) - Tactic Knowledge Inc. - USD ($)
$ / shares in Units, $ in Thousands
9 Months Ended
Sep. 30, 2021
Sep. 30, 2020
Business Acquisition [Line Items]    
Revenue $ 152,775 $ 92,462
Net loss $ (2,304) $ (8,156)
Diluted loss per share (in usd per share) $ (0.04) $ (0.19)
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.21.2
Property and Equipment, net (Details) - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2021
Dec. 31, 2020
Property, Plant and Equipment [Line Items]    
Property and equipment, net $ 5,395 $ 4,095
Property, Plant and Equipment, Excluding Capitalized Software Costs    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 11,923 8,430
Less: Accumulated depreciation and amortization (7,798) (5,622)
Property and equipment, net 4,125 2,809
Computers and equipment    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross $ 9,241 6,447
Computers and equipment | Minimum    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 2 years  
Computers and equipment | Maximum    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 5 years  
Machinery and automobiles    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 5 years  
Property and equipment, gross $ 631 551
Furniture and fixtures    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross $ 1,012 643
Furniture and fixtures | Minimum    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 3 years  
Furniture and fixtures | Maximum    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 7 years  
Software    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 5 years  
Property and equipment, gross $ 513 554
Leasehold improvements    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross $ 526 236
Leasehold improvements | Minimum    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 3 years  
Leasehold improvements | Maximum    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 12 years  
Capitalized software development costs    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross $ 4,394 3,531
Less: Accumulated depreciation and amortization (3,124) (2,245)
Property and equipment, net $ 1,270 $ 1,287
Capitalized software development costs | Minimum    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 2 years  
Capitalized software development costs | Maximum    
Property, Plant and Equipment [Line Items]    
Estimated Useful Life (In Years) 3 years  
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.21.2
Intangible assets, net (Details) - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2021
Dec. 31, 2020
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, gross $ 21,087 $ 8,174
Less: Accumulated amortization (1,358) (49)
Intangible assets, net $ 19,729 8,125
Minimum    
Finite-Lived Intangible Assets [Line Items]    
Estimated Useful Life (In Years) 2 years  
Maximum    
Finite-Lived Intangible Assets [Line Items]    
Estimated Useful Life (In Years) 12 years  
Customer relationships    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, gross $ 15,971 4,234
Customer relationships | Minimum    
Finite-Lived Intangible Assets [Line Items]    
Estimated Useful Life (In Years) 8 years  
Customer relationships | Maximum    
Finite-Lived Intangible Assets [Line Items]    
Estimated Useful Life (In Years) 12 years  
Tradename    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, gross $ 4,676 3,500
Tradename | Minimum    
Finite-Lived Intangible Assets [Line Items]    
Estimated Useful Life (In Years) 4 years  
Tradename | Maximum    
Finite-Lived Intangible Assets [Line Items]    
Estimated Useful Life (In Years) 10 years  
Non-compete agreements    
Finite-Lived Intangible Assets [Line Items]    
Estimated Useful Life (In Years) 2 years  
Intangible assets, gross $ 440 $ 440
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.21.2
Other current liabilities - Schedule of other current liabilities (Details) - USD ($)
$ in Thousands
Sep. 30, 2021
Dec. 31, 2020
Other Liabilities, Current [Abstract]    
Customer deposits $ 781 $ 731
Other liabilities 2,068 528
Contingent consideration payable 4,926 1,947
Total other current liabilities $ 7,775 $ 3,206
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.21.2
Other current liabilities - Narrative (Details) - USD ($)
$ in Thousands
3 Months Ended
Sep. 30, 2021
May 29, 2021
Dec. 14, 2020
Sep. 30, 2020
Other Liabilities [Line Items]        
Contingent consideration for acquisition of businesses $ 2,979     $ 0
Other Current Liabilities        
Other Liabilities [Line Items]        
Due to related parties 1,100      
Daxx        
Other Liabilities [Line Items]        
Contingent consideration for acquisition of businesses     $ 1,900  
Daxx | Other Income (Expense)        
Other Liabilities [Line Items]        
Change in contingent consideration $ 400      
Tactic Knowledge Inc.        
Other Liabilities [Line Items]        
Contingent consideration for acquisition of businesses   $ 3,400    
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.21.2
Income taxes (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2021
Sep. 30, 2020
Sep. 30, 2021
Sep. 30, 2020
Income Tax Examination [Line Items]        
Income tax expense (benefit) $ 2,633 $ (99) $ 4,655 $ (3,594)
Effective tax rate, percentage 126.30% 8.10% 829.80% 31.30%
United Kingdom        
Income Tax Examination [Line Items]        
Discrete tax expense     $ 500  
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.21.2
Stockholders' equity (Details)
9 Months Ended
Jul. 28, 2021
USD ($)
$ / shares
shares
Jul. 26, 2021
USD ($)
shares
Jul. 06, 2021
USD ($)
$ / shares
shares
Mar. 29, 2021
shares
Mar. 02, 2021
shares
Jan. 20, 2021
shares
Dec. 31, 2020
$ / shares
shares
Sep. 30, 2021
USD ($)
$ / shares
shares
Sep. 30, 2020
USD ($)
Aug. 30, 2021
$ / shares
shares
Mar. 05, 2021
shares
Mar. 05, 2020
$ / shares
Dec. 31, 2019
$ / shares
shares
Stockholders' equity (Details) [Line Items]                          
Common stock, shares authorized (in shares)             110,000,000 110,000,000          
Common stock, shares issued (in shares)             50,878,780 65,121,241          
Common stock, shares outstanding (in shares)             50,878,780 65,121,241          
Sale of stock, price per share (in dollars per share) | $ / shares     $ 15.03                    
Common stock, par value (in dollars per share) | $ / shares             $ 0.0001 $ 0.0001       $ 0.0001  
Proceeds from exercise of public warrants | $               $ 48,145,000 $ 0        
Exercise price (in dollars per share) | $ / shares               $ 11.50          
GDI                          
Stockholders' equity (Details) [Line Items]                          
Preferred stock shares, outstanding (in shares)                         1,000,000
Preferred shares, par value (in dollars per share) | $ / shares                         $ 0
Preferred stock, conversion ratio                         1
Common stock, par value (in dollars per share) | $ / shares                       $ 0.0001  
Follow On Public Offering                          
Stockholders' equity (Details) [Line Items]                          
Sale of stock, number of shares issued in transaction (in shares)     11,600,000                    
Follow On Public Offering - Shares From Parent                          
Stockholders' equity (Details) [Line Items]                          
Sale of stock, number of shares issued in transaction (in shares)     5,500,000                    
Sale of stock, consideration received on transaction | $     $ 78,300,000                    
Follow On Public Offering - Shares From Selling Shareholders                          
Stockholders' equity (Details) [Line Items]                          
Sale of stock, number of shares issued in transaction (in shares)     6,100,000                    
Sale of stock, consideration received on transaction | $     $ 0                    
Earnout Shares                          
Stockholders' equity (Details) [Line Items]                          
Shares issued subject to earnout provisions (in shares)                     1,200,000    
Contingent earnout shares expected to vest, threshold trading term               20 days          
Contingent earnout shares expected to vest, trading period               30 days          
Earnout shares vested (in shares)       400,001 400,000 399,999 0            
Earnout Shares One                          
Stockholders' equity (Details) [Line Items]                          
Contingent earnout shares expected to vest (in shares)               399,999          
Contingent earnout shares expected to vest, exercise price (in dollars per share) | $ / shares               $ 12.00          
Earnout Shares Two                          
Stockholders' equity (Details) [Line Items]                          
Contingent earnout shares expected to vest (in shares)               400,000          
Contingent earnout shares expected to vest, exercise price (in dollars per share) | $ / shares               $ 13.50          
Earnout Shares Three                          
Stockholders' equity (Details) [Line Items]                          
Contingent earnout shares expected to vest (in shares)               400,001          
Contingent earnout shares expected to vest, exercise price (in dollars per share) | $ / shares               $ 15.00          
Public Warrant                          
Stockholders' equity (Details) [Line Items]                          
Warrants exercised (in shares) 2,750,000 1,400,000                      
Proceeds from exercise of public warrants | $ $ 31,700,000 $ 16,400,000                      
Warrants outstanding (in shares) 2,800,000             0          
Redemption price (in dollars per share) | $ / shares                   $ 0.01      
Exercise price (in dollars per share) | $ / shares $ 11.50                        
Warrants redeemed (in shares)                   19,744      
Private Warrant                          
Stockholders' equity (Details) [Line Items]                          
Warrants outstanding (in shares)               0          
Common Stock                          
Stockholders' equity (Details) [Line Items]                          
Common stock, shares authorized (in shares)               110,000,000          
Common stock, shares issued (in shares)                     50,800,000    
Common stock, shares outstanding (in shares)               65,100,000          
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - 2018 Stock Plan - Narrative (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended 10 Months Ended
Mar. 05, 2020
Sep. 30, 2021
Jun. 30, 2021
Mar. 31, 2021
Sep. 30, 2021
Sep. 30, 2020
Dec. 31, 2020
Mar. 31, 2020
Mar. 06, 2020
Dec. 31, 2019
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                    
Proceeds from exercises of stock options, net of shares withheld for taxes         $ 619 $ 78        
2018 Stock Plan                    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                    
Accelerated vesting. number of shares (in shares) 2,600                  
Accelerated cost $ 2,500                  
Stock options vested (in shares) 1,700                  
Shares options nonvested (in shares) 100                  
Exercise price range, lower limit (in dollars per share)         $ 3.51          
Exercise price range, upper limit (in dollars per share)         $ 3.54          
Options forfeited (in shares)         70          
Exercise of stock options (in shares)   687 257 37 1,010   28      
Proceeds from exercises of stock options, net of shares withheld for taxes         $ 2,100          
Number of shares exercisable (in shares)   3,500     3,500          
Average exercise price of shares exercisable (in dollars per share)   $ 3.54     $ 3.54          
Options outstanding (in shares)   3,603 4,291 4,552 3,603   4,600 1,887 4,678 2,734
Options outstanding, intrinsic value   $ 92,500     $ 92,500          
Remaining contractual term         7 years 2 months 23 days          
2018 Stock Plan | Stock Options                    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                    
Shares withheld (in shares)         250          
Unrecognized compensation expense, options   $ 200     $ 200          
Period for recognition         1 year 11 months 4 days          
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Schedule of conversion of the vested and unvested options (Details) - 2018 Stock Plan - shares
shares in Thousands
3 Months Ended 9 Months Ended 10 Months Ended
Mar. 06, 2020
Sep. 30, 2021
Jun. 30, 2021
Mar. 31, 2021
Mar. 31, 2020
Sep. 30, 2021
Dec. 31, 2020
Shares              
Options outstanding, beginning balance (in shares)   4,291 4,552 4,600 2,734 4,600 4,678
Cashed out (in shares)         (829)    
Forfeitures / cancelled in period (in shares)   (1) (3) (11) (19)   (50)
Converted vested balance (in shares) 4,314            
Converted unvested balance (in shares) 364            
Exercised in period (in shares)   (687) (257) (37)   (1,010) (28)
Options outstanding, ending balance (in shares) 4,678 3,603 4,291 4,552 1,887 3,603 4,600
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - 2020 Equity Incentive Plan - Narrative (Details) - 2020 Equity Incentive Plan - shares
3 Months Ended 9 Months Ended
Sep. 30, 2021
Sep. 30, 2021
Mar. 05, 2020
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Number of shares authorized (in shares)     16,300,000
Options granted (in shares)   546,000  
Non-Statutory Stock Options      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Options granted (in shares) 320,000 550,000  
Restricted stock units      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Options granted (in shares) 40,000.00    
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Schedule of awards available for grant (Details) - shares
shares in Thousands
3 Months Ended 9 Months Ended
Jun. 16, 2021
Mar. 02, 2021
Sep. 30, 2021
Sep. 30, 2021
Restricted stock units        
Shares        
Non-option awards granted (in shares)       (47)
Performance stock units        
Shares        
Non-option awards granted (in shares) (20)      
2020 Equity Incentive Plan        
Shares        
Available for grant, beginning balance (in shares)       9,881
Options granted (in shares)       (546)
Options, RSUs, and PSUs forfeited (in shares)       669
Traded for taxes (returned to the pool) (in shares)       1,513
Available for grant, ending balance (in shares)     10,904 10,904
2020 Equity Incentive Plan | Restricted stock units        
Shares        
Options granted (in shares)     (40)  
Non-option awards granted (in shares)       (47)
2020 Equity Incentive Plan | Performance stock units        
Shares        
Non-option awards granted (in shares)   (500)   (566)
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Stock Options - Narrative (Details)
$ / shares in Units, shares in Thousands, $ in Millions
3 Months Ended 9 Months Ended
Sep. 30, 2021
USD ($)
shares
Sep. 30, 2021
USD ($)
$ / shares
shares
2020 Equity Incentive Plan    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Options granted (in shares) | shares   546
Total outstanding shares (in shares) $ 2.0 $ 2.0
Options outstanding, intrinsic value 37.0 37.0
Unrecognized compensation expense, options $ 6.9 $ 6.9
Period for recognition   2 years 11 months 19 days
Non-Statutory Stock Options    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Dividend yield   0.00%
Grant date fair value of common stock (in dollars per share) | $ / shares   $ 18.60
Non-Statutory Stock Options | 2020 Equity Incentive Plan    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Options granted (in shares) | shares 320 550
Exercise term 10 years  
Options vested and outstanding (in shares) | shares   490
Options granted, fair value   $ 4.0
Grant date fair value of common stock (in dollars per share) | $ / shares   $ 7.35
Non-Statutory Stock Options | 2020 Equity Incentive Plan | One year after the grant date    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Vesting percentage   25.00%
Non-Statutory Stock Options | 2020 Equity Incentive Plan | Subsequent three-month anniversary    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Vesting percentage   6.25%
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Schedule of estimated grant using the Black-Scholes (Details) - Non-Statutory Stock Options
9 Months Ended
Sep. 30, 2021
$ / shares
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Dividend yield 0.00%
Expected volatility 40.00%
Risk-free interest rate 0.87%
Expected term in years 6 years 1 month 9 days
Grant date fair value of common stock (in dollars per share) $ 18.60
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Schedule of option activity (Details) - 2020 Equity Incentive Plan - $ / shares
shares in Thousands
9 Months Ended 12 Months Ended
Sep. 30, 2021
Dec. 31, 2020
Shares    
Options outstanding, beginning balance (in shares) 1,942  
Options granted (in shares) 546  
Options exercised (in shares) (102)  
Options forfeited (in shares) (345)  
Options outstanding, ending balance (in shares) 2,041 1,942
Price    
Options outstanding, beginning balance (in dollars per share) $ 8.38  
Options granted (in shares) 18.60  
Options exercised (in dollars per share) 8.20  
Options forfeited (in dollars per share) 8.67  
Option outstanding, ending balance (in dollars per share) $ 11.08 $ 8.38
Term    
Options outstanding (in years) 8 years 10 months 6 days 9 years 2 months 19 days
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Restricted Stock Units - Narrative (Details) - 2020 Equity Incentive Plan
shares in Thousands, $ in Millions
3 Months Ended 9 Months Ended
Sep. 30, 2021
USD ($)
shares
Sep. 30, 2021
USD ($)
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Period for recognition   2 years 11 months 19 days
Restricted stock units    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Shares issued upon vesting (in shares) | shares 80  
Shares withheld (in shares) | shares 80  
Tax withholding obligation | $ $ 2.1  
Unrecognized compensation expense, excluding options | $ $ 13.6 $ 13.6
Period for recognition   1 year 10 months 24 days
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Schedule of restricted stock unit activity (Details) - Restricted stock units
shares in Thousands
9 Months Ended
Sep. 30, 2021
shares
Shares  
Outstanding, beginning balance (in shares) 2,996
Granted (in shares) 47
Released (in shares) (1,068)
Forfeited (in shares) (291)
Outstanding, ending balance (in shares) 1,683
XML 65 R54.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Performance Stock Units - Narrative (Details) - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Jun. 16, 2021
Mar. 02, 2021
Sep. 30, 2021
Sep. 30, 2020
Sep. 30, 2021
Sep. 30, 2020
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Share-based compensation expense     $ 9,113 $ 5,126 $ 21,459 $ 13,584
Performance stock units            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Granted (in shares) 20          
Estimated payout percentage     272.00%   272.00%  
Share-based compensation expense         $ 13,100  
Unrecognized compensation expense, excluding options     $ 9,700   $ 9,700  
Performance stock units | 2020 Equity Incentive Plan            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Granted (in shares)   500     566  
Maximum payout, percentage   300.00%        
Vesting percentage, revenue growth         50.00%  
Vesting percentage, contribution margin         50.00%  
XML 66 R55.htm IDEA: XBRL DOCUMENT v3.21.2
Stock-based compensation - Schedule of Employee stock-based compensation recognized (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2021
Sep. 30, 2020
Sep. 30, 2021
Sep. 30, 2020
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Share-based compensation expense $ 9,113 $ 5,126 $ 21,459 $ 13,584
Unrecognized stock-based compensation expense 30,300   30,300  
Cost of revenue        
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Share-based compensation expense 173 66 433 740
Engineering, research, and development        
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Share-based compensation expense 799 621 1,970 1,678
Sales and marketing        
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Share-based compensation expense 963 808 2,207 2,545
General and administrative        
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Share-based compensation expense $ 7,178 $ 3,631 $ 16,849 $ 8,621
XML 67 R56.htm IDEA: XBRL DOCUMENT v3.21.2
Earnings per share - Schedule of Computation of Basic and Diluted Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2021
Jun. 30, 2021
Mar. 31, 2021
Sep. 30, 2020
Jun. 30, 2020
Mar. 31, 2020
Sep. 30, 2021
Sep. 30, 2020
Numerator for basic and diluted loss per share                
Net loss $ (549) $ (1,483) $ (2,062) $ (1,117) $ (2,166) $ (4,596) $ (4,094) $ (7,879)
Weighted average number of shares outstanding - basic (in shares) 62,610     49,651     56,280 43,074
Weighted average number of shares outstanding - diluted (in shares) 62,610     49,651     56,280 43,074
Net income/(loss) per share                
Basic (in dollars per share) $ (0.01)     $ (0.02)     $ (0.07) $ (0.18)
Diluted (in dollars per share) $ (0.01)     $ (0.02)     $ (0.07) $ (0.18)
XML 68 R57.htm IDEA: XBRL DOCUMENT v3.21.2
Earnings per share - Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share (Details) - shares
shares in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2021
Sep. 30, 2020
Sep. 30, 2021
Sep. 30, 2020
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Antidilutive securities excluded from computation of earnings per share (in shares) 13,986 22,069 22,929 25,356
Convertible preferred stock        
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Antidilutive securities excluded from computation of earnings per share (in shares) 0 0 0 1,048
Stock options to purchase common stock        
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Antidilutive securities excluded from computation of earnings per share (in shares) 6,486 6,467 7,088 8,676
Restricted stock units        
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Antidilutive securities excluded from computation of earnings per share (in shares) 1,840 2,963 3,042 2,993
Performance stock units        
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Antidilutive securities excluded from computation of earnings per share (in shares) 1,452 1,292 1,452 1,292
Warrants to purchase common stock        
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Antidilutive securities excluded from computation of earnings per share (in shares) 4,208 11,347 11,347 11,347
XML 69 R58.htm IDEA: XBRL DOCUMENT v3.21.2
Subsequent events (Details) - GDI - ChaSerg - shares
shares in Thousands
1 Months Ended
Mar. 05, 2020
Oct. 31, 2021
Subsequent Event [Line Items]    
Business acquisition, number of shares issued (in shares) 26,149  
Subsequent Event    
Subsequent Event [Line Items]    
Business acquisition, number of shares issued (in shares)   100
Shares released from escrow (in shares)   900
EXCEL 70 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( (&%9%,'04UB@0 +$ 0 9&]C4')O<',O87!P+GAM M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " "!A613?C3A+>X K @ $0 &1O8U!R;W!S+V-O&ULS9+! M2L0P$(9?17)OIVF+0NCFLN))07!!\1:2V=U@DX9DI-VWMXV[740?P&-F_GSS M#4RG@]!#Q.-8CDW.S3MP>'MZ?,GK%M8G M4E[C_"M90:> &W:9_-IL[WO2^N/_RNPFXP=F__ ML?%%4';PZR[D%U!+ P04 " "!A613F5R<(Q & "<)P $P 'AL+W1H M96UE+W1H96UE,2YX;6SM6EMSVC@4?N^OT'AG]FT+QC:!MK03621A'^_1S80RY8-[9)-NIL\!"SI^\Y%1^?H.'GS[BYBZ(:(E/)X M8-DOV]:[MR_>X%#BVR]*+ M41B1%G\@M MNN01.+5)#3(3/PB=AIAJ4!P"I DQEJ&&^+3&K!'@$WVWO@C(WXV(]ZMOFCU7 MH5A)VH3X$$8:XIQSYG/1;/L'I4;1]E6\W*.76!4!EQC?-*HU+,76>)7 \:V< M/!T3$LV4"P9!AI@S M&L%&KQMUAVC2/'K^!?F<-0HACA*FNVB<5@$_9Y>PTG!Z(++9OVX?H;5,VPLCO='U!=*Y \FIS_I,C0' MHYI9";V$5FJ?JH,@H%\;D>/N5Z> HWEL:\4*Z">P'_T=HWPJOX@L Y M?RY]SZ7ON?0]H=*W-R-]9\'3BUO>1FY;Q/NN,=K7-"XH8U=RSTS0LS0[=R2^JVE+ZU)CA* M]+',<$X>RPP[9SR2';9WH!TU^_9==N0CI3!3ET.X&D*^ VVZG=PZ.)Z8D;D* MTU*0;\/YZ<5X&N(YV02Y?9A7;>?8T='[Y\%1L*/O/)8=QXCRHB'NH8:8S\-# MAWE[7YAGE<90-!1M;*PD+$:W8+C7\2P4X&1@+: '@Z]1 O)256 Q6\8#*Y"B M?$R,1>APYY=<7^/1DN/;IF6U;J\I=QEM(E(YPFF8$V>KRMYEL<%5'<]56_*P MOFH]M!5.S_Y9KF4Q9Z;RWRT,"2Q;B%D2XDU=[=7GFYRN>B)V^I=W MP6#R_7#)1P_E.^=?]%U#KG[VW>/Z;I,[2$R<><41 71% B.5' 86%S+D4.Z2 MD 83 >LX=SFWJXPD6L_UC6'ODRWSEPVSK> U[F M$RQ#I'[!?8J*@!&K8KZZKT_Y)9P[M'OQ@2";_-;;I/;=X Q\U*M:I60K$3]+ M!WP?D@9CC%OT-%^/%&*MIK&MQMHQ#'F 6/,,H68XWX=%FAHSU8NL.8T*;T'5 M0.4_V]0-:/8--!R1!5XQF;8VH^1."CS<_N\-L,+$CN'MB[\!4$L#!!0 ( M (&%9%->Z$LC9P4 *,6 8 >&PO=V]R:W-H965T&UL MI5A;;^)&%'[>_HH1ZD,KA=@> R$K$HF0RT;=S9*0MDJK/@SV %;L&>]X#.'? M]XP--HF&8ZM] =_.Y\_GS'SG,MI(]9JM.-?D+8E%=M%9:9U^=IPL6/&$9::BXW7V%YZBY4J;"\[E*&5+/N/Z]W2JX,RI4,(HX2*+I""*+RXZ8^_S MQ.\9@^*)/R*^R0Z.B?F4N92OYN0^O.BXAA&/>: -!(._-9_P.#9(P./'#K13 MO=,8'A[OT6^+CX>/F;.,3V3\9Q3JU45GV"$A7[ \UD]R\X7O/JAO\ (99\4O MV93/]GH=$N29ELG.&!@DD2C_V=O.$8<&](@!W1G0#P;>L3?X.P._^-"26?%9 MUTRSRY&2&Z+,TX!F#@K?%-;P-9$P89QI!79>1&A#Q\;^\ H8H5W;.ZHBC@C*>GQ'=/"'6I M9^$SP95K#N_D$@>Q5DKX#L'8&\ED$. MNT&3YVW*;1['S3VW^XBPZ%:O M8<5IB.+<"!WI+;F-8DX>\F3.E8T+CN&Z7M>\#9\GOHS,9@%G M/;#$&CT8) MF6E8:T0J,I&YT&H+_Z&5?0/Z]0U&\D"P8OK4Q0C66<'#=?TCP8DY@^7X+#?"2@Z' MFS%0*)9(@9&KDX6'2_Q'%B_Y':5&::Q>2O M*#V^@W'$\UY_Z&/+C.?Y4!^&2ZD@++ M%0T@?>IWS0[%&-7)PL-5_CG2D+?D@GCTE_FO9 9[7H&WK+1PI(E,8)G#DI3! MZPE)F2)K%N><_.R> EF/I%# %>4M5IW6R8/B\@X%@,E'9+9-YC*VT6T N+M^ M><"8U!F"XG*^=QD(9K!B LKX8_FV >AA/+L>8S4EK7,";943)KE2IEHJ2Z3" M72 8N;6_:$!\^=B5O&=6ZS]MI?_W FK=LH$TQ27;4[4RPQ$;F-7"3UL)OZGC MH/@ 75U*9=T'#3CC(( 6&1QRGJ>JE MM>#35H)_DW"U-$OK#A#T"A0V29FP.PX';.A?:"WW%%?K/;.WPS:A[&:LM/Y? MGT!K]:>M.H79BD,,,3_A,(V$:O&GK5J%]\H]*T80Y'NN(8$+([+6]K]$[A?( M9E*UAB1)^][P?#!RUA96?BWM/J[,>]6ZC3*3+5\XI!*L"6V ZW8]VO71(42M M]3XNT6-H/L.B ;V-FOX9Q=I/_V!4@PMRU:0?!O 6+EKUJ@&L:7Y4R[O?TW9F0U(S%?@*E[>@9;3943 MT?)$R[08*LZEUC(I#E>&PO=V]R:W-H965T&ULM5C? M;]LV$/Y7"#IWXQAH':SKP[:@:;9G6J)CH9+HBE2<[*_?45(D6R3E M]&$/B27J[OC=D7??DQ80<4EW[,2OFQY M55 )K]7#0NPK1M-&J<@7Q'&"14&S_K [IB\W]]6\+;HK:19P4J1\1)5;'L]^X0_KDFL M%!J)OS-V$$?/2+FRX?R'>OF:7L\:XL 8Z?G=%9/Z=2 M/'Y^L?Y;XSPXLZ&"K7G^3Y;*W?4LFJ&4;6F=RV_\\#OK'/*5O83GHOF/#IVL M,T-)+20O.F5 4&1E^TN?ND <*6#/HD Z!?):!;=399"E:\S*%Y6F?!,^SE*KASS2G M9<+0G9I"H _H_NX&O;MXCRY05J+O.UX+6J9BN9" 1ME<)-W,G]N9B67F.[:_ M1*XS1\0AV*"^GE:_80FHXT;=.55?0 SZ0) ^$*2QYUKLK>NJ8J5$5 CP<\*@ MVQMT&X.>S2 5.P2A08EZ8#_K[)'F,(,Q5*VIH#&E,N]QA>.8Q.%R\7@<$H,8 M)J'G]V(G2+T>J3>)]%.2\!J 05HF#%!NI".(QC,\"@ M!QA, KRMV)YF*21?P@N&)'TR PRTN8/8&^'392*5BB9X80\O?!4\]K17Q40T M^X#+':N@FMDSK,4<:GA\U\$CT+H0<0,+ZJA''4VB_LXES5\!,-+G]IS8BT80 M=3'L>@$.S"#C'F1\)K1 WI5\;D*JZLD>Z%0VF6K"&AN"&?LCI+H0^&,I)]@9 M.,691/JUE+1\R"!WNEA:07:&3D(5AR0>P32(19C8<.V#)8\55DT ML>J=E9-Z1/SQHAND_,"Q9#L>: F328Q?.$\/4)*,P(@.S'=U9+H8]@);I<0# MP>%IAFNS9B)NKJ&.>T&DX=/E M)HF>,/?T63&$T7E3\0_)V'5=*O1#B]\#1>!IC@!\50W;VNIW!U&O_QAKQ9?^R] H%_AP3/"=>>YCQG7D41O,P^)!,\Z%6$)L\_$4G M8NW:Q=C'&N2,?>SBZ+I.W97^0:N'K!0H9UM0="Y#"$/57C^V+Y+OFQN\#9>2 M%\WCCE$ KP3@^Y9#V>Q>U*5@?PF\^@]02P,$% @ @85D4Y=F'0+> @ M,0@ !@ !X;"]W;W)KK8F>W MK]^9R>-:/E1"A*QG?ONON]L MWS':*OUL"L8L_"F%-..@L+:Z#4.3%:RDIJ"2S368NBRI_GO/A-J.@RAX67CDZ\*ZA7 RJNB: M+9A]JN8:9V'G)>.6I;4L*D2/WANBW%P$T#. M5K06]E%M/[-63^K\94H8_PO;UI8$D-7&JK(%(X.2R^9)_[1YV %$R1% W +B M8V]O_XQ-1:SA]?#@EK! Y>80TX%S)7A M_KS_O%L:J_'4_SH1K-\%Z_M@R9%@=P)OK]\EK .0JWII5[7 .Y6I6MJ#>]$X M''B'KC1L)G&:C,+-;L+W;9+HIK-YQ33IF"8GF4Y56:)Z/-;9\S545,.&BIK! M)9Z=7 E!M8&*85DJ\)A='2+>^!_ND"(]0DCTAOMY9K-WS5ZI3#N5Z0=4>BT& M:&T+I?D_O%-.;;-Z4&+C/-TA%46D^;Q1>8[E*P6#3L'@XPJX,?7[[ =[G 9I M%$=Q\G:+]@U3,9BX6)R_5[ H;G"M@W/"(@W*G/KIEB ML5ES:4"P%4));X@^=-.@FHE5E2_92V6Q ?AA@3V=:6> [U=*V9>)ZP+=OX3) M?U!+ P04 " "!A613!D.NAO(% !6& & 'AL+W=O3['8?.GU0 M+&RK*PD7L)/]]P5)EFQ ;-KF(9;PN1?.Y7(YX.D+9=_XEA !7JNRYG>3K1"[ M6\_CJRVI,GY#=Z26WZPIJS(A7]G&XSM&LKPQJDH/^7[D55E13V;3INV!S:9T M+\JB)@\,\'U59>S[/2GIR]T$3HX-C\5F*U2#-YONL@UY(N++[H')-Z_WDA<5 MJ7E!:\#(^F[R'MXN$58&#>+W@KSPDV>@J#Q3^DV]?,CO)KX:$2G)2B@7F?PX MD#DI2^5)CN/OSNFD[U,9GCX?O?_4D)=DGC-.YK3\6N1B>S=))B GZVQ?BD?Z M\@OI"(7*WXJ6O/D/7CJL/P&K/1>TZHSE"*JB;C^SURX0)P;2C]T =09(-\ C M!D%G$+RU!]P9X+?V$'8LOY=X$;I&);#9E] 4PA9;>U$,3_<9:QJNH5:(\ M"2:_+:2=F'VILWU>")*#.:USF0#M$Z=ED6>J^4G(#YD9@@.Z!K]2SD%6*TPE M$W.K,N9 VN9K\.5I 2[>70*^S1CAH*C!YRW=JAOI M?3M2-#+2 'RDM=ARL)3CS"WV"[=]ZK#W9-3ZT*%CZ.Z1T^$3V=V P+\"R$?0 M,I[YV\U]&YW_U_OR/_=^%HR@SZ.@\1>,^/M0KVA%AFP!?[Q_YH+).O"GPSON MO>/&.Q[Q_D@.I-X36]*TAE%CJ*KB81;&:1!,OYJQ /*Z4X65.Q9"TCM-G+%;UAO90IAT>R53 MA9.,K;97347.9>*4=*<6GRVJBB8FMCFAI=8S_6"X()0@B'&E,3E*98B]G2!,4XA':F MT!^V9=^]2$@MTZ=LV&:YW/@+54V5J++NG+ZY&F(_A1II"RP)?7W-6% X@*D6 MG*4%)E>I'XTP/Q$DT,G\,Q62-_W!ZNEX0W,, 4KU6F&!090@?;HML#!)$-:) MFS ,4>B/$$<#<>0DWFZAWD4IR^,E6#-:':,@]9B5/3)II;&ODS=1US"*H4[> MXBS4U_[2Z@PF*1HA/\@'&#C)?Q);PJ1";$-PG//+*U 3:SGKW)W7?ZQ3-T$X M-&;=!%U#'QKI;O$%1W9"..@:Z!8VYW/^3.3)CW11 ")['1%U# M!/5J;H&%$=3)VWQ!'(\4=#B('NA6/0^,'@IUZ/0NGF7%DXI 9CYE/PZ!J4R4 MH--#8**N3]1+%P 3A",]2Y8V5T&8XI$ #%H(NL70;T0 -?E6DJ8NN0YQJI.T MH*04BG6:%ACV4Z.X66!Q$H\E^B"&8.SD*4_U\LQ>RR,M8Z1>?0=R-ZMYF;6W M!?E?\J3;'#*;!:]TL)QZ:TQB]-D*^'P^(GUK=VIY_S0 P"#KH5W/G! M>73J$^.,<1T%H<[3@K)-O06&H:ZHES:88^H'U093IQ!N+@?D1M9>"[@.WH,Z M0FYU=)_Q8@4NBAKDM"PS=N+_TA;.SEUR2LV_\75]- +3CXDCL-@_^]-KJ-T* MCIPRT*"7D%LO+8IRKRYJ_D4TX-NB88<9T;##?A0-J]5H- 81A9 SV;XV-X,R M'-E!2J<-.=Y%T;W@0HIIX\QPWL^@5Y!;KPP9V'9@#[2I&2(405VA66 XC4)= MH5E@8802_3!K\Q;X\6]@6\7;97W(/[]L;]8\;D MR9V#DJQE5_Y-+,?*VDOL]D7077-+^TR%H%7SN"593I@"R._7E(KCB^J@_REA M]@]02P,$% @ @85D4Q><@3)N# 'U( !@ !X;"]W;W)K[#UO[ MP$BTQ0TE:DC*CO?K%Z0H000:@"X>9UX2RSX NG'I<[H)ZO@A+[Z7DR2I@A_3 M;%:^/9I4U?R7?K\<39)I7+[)Y\E,_N4V+Z9Q)3\6=_UR7B3QN&DTS?HX#'E_ M&J>SHY/CYG=7Q_8I^^2)$W:!!_#--'LJ-GX/: ME6]Y_KW^<#Y^>Q36%B59,JKJ+F+YWWWR+LFRNB=IQY]MIT?K,>N&FS^O>O_0 M."^=^1:7R;L\^UK+:MF1ONZ< MV9JL%AXU*]]?GJOF4+Z/J_CDN,@?@J+&R_[J'YJ3W;279S&=U4'HIBKD7U/9 MKCKY.HL7X[1*QL&[?%;F63J.ZP\WE?Q/QIHJR&_KO]PG195^RY+@2L:(I"@: M2#[Z'L2S]J=)GHV3HOQ',/QSD5:/02_X>O,^>/GB55!.XB(I@W06_#')%Z5L M4;X.7G0^'_CDO;N37\?_E4M3SP[0=NANZYA+H+,/>W>VG:,?]^[?.0=GOFZG4\D_-J?/ MMV^]G9>?MN_0Z=:%;UO(@R2)-9R.>W*#C^)Y"N_3W_;M:SN7/^_;O7," M+MV]7B>55#URAR1Q,4MG=]"Q_GW'+K9S]\KC[FBTF"ZR)K+EU20I@E$^E9IM M4HNI^T2&(ODYZ;_,\K)\!73_Y0F[]SK4EQ%\'<;Q.HSCQ@1J,>$TN4MG]81) M19;%LU$2O)1KNHR\KX*X"MXGHSI,)UE/)]EQ.K>8 MPM-EGWS#$D9#W:MW6Z'>FZBPBQB:B $2VN1\V 9T9H*T-3TW$0(A?2%,4$^B M6!=U8:*0X$QS[C< %3*B]?49-$L#79H@PLA \_#WK5!7WE7YXD)TMB)=;T7: M-"&6K7@^&\GDLI0'6NZ_YJ=7M70"-=>_K_,L"V1R]A 7X_\XP@I;#\Z$!IG)S8 D M0NV\77A '2.CM9&1T\BE?&K2=:FB1QMB:C%+JW(S1$,B*C),8@0V2*P-$H<8 M!$V> (S0]OR%&].Q=+"V=+"#I?.U]BR;I,,]<<.!N>-,+CLS41U0QVP4JG0J MW-]P,,T)#3MDB-:,';:H3G %(CD 0]IBP>-9^!)MI)'(YW>9RF#4G,)&5 95 M'GPLY/_-2K6A"IP!!*P7)I(5=-/]P*[U2CTAMWQZ-XEODN)NE:H62:N&T_\E MX]?!+&G2X*J(9919ULY&>2D/L/SE"_H:4>P[R@@0/"(4MMVF9 IRZY1#[0:7 M@YBVAI1@IN\UKVRXL'5E"6-(<2*B3K^'L[%#ZWZ.BY50PR&8HE/#KE#WSH2P M4!";Y8I0D9M1-R'8 E)GN " SWP% 4,(#F05D/ #,GO(@I5:0 M6Z[LE_0@0*8 64\+\Z4] ,S8YB8$2'RV0IT!*#WU 2! [@.@H.0'F"PH^P%Z M@](?V#0]_P'&A!(@H#,H P)ZTU,@YQIV]Z82KD@\?Q:$E!I%;CGJSH,0(#@C M>2)AI['2DMBM):4+27HG27LA)>1L]+AD\FPIL>)UH:Y43!__@.S#IN2S+ A6 M>@^[]9Z;@6^2N8P:H9V!L2GE=*X"()*!N%T".!PQ1+03"\!L&/I!BERQK*_F\-M1;G,)FT<)LLA-G;V'M*3%)&%$VB#0N&K8X M5]0#(,:S 6 T%!&JB=!+ (<%UT/Q%0"S1#VBU /!SQ_UR,9S*3?QNJ,>,1FS MAXQDY=(+ZQJGB)6XB767J$> ^@K2\^8+'ZIKJ*(NXBG"[!OUB%G-L!FCB(RX MB6RGJ$> "H$>]=R8KI6*T8B;T9XJ%R&N_+%KFR(QXB:Q\[)<-!&MGL'U9:-1 M/INU-QT?TFH2W"=E_8#^^N:K?YE--AD3-2D,S)BH^6%=8U3G$S=G+R+ M>* F#3,>Z4\Z?:BNH8JOJ9NO#WRJ3X%' 1C;K%+\3-W\O+>DH28A4YLUBI'I MGFDEN)H V^K;[L(#ZMJI.)FZ.1E0#O6%YGG\V(B95L<$^;Q1,D3=SD_=SN@A>$C+) MM(<8'FC5&]-U0+$OVZE@[:BT(D@W,%?] M=[GU BCR!8JF>([YLY6W0^[(6M/F9F;(AIB_1GHD'FOXIT!$%TT0*.A 37J MA .AQ%!^O*;,&K)&YAB;;9KN7I7Y5 MBF!N%?%DD=O4#KW(HAV8T@[LJ?)Y."S[\WD PAFR:46N) $_))\'PS(',V>F M!\HA]^?S $37 M!HC ^('I8!'!)\H+,R .M%M@O(2E?P S-Z+S-S?T8/0!S, MS)6FX'MD]%YRYD".#9$S]V?T $2/R]!H$#D#.(B< 9B-G+E2./PG9/1<:0-^ M2$;/@50=44'T^?/!NL8I[N=/E]%SH+#.(V-'>%!=0S?>)?A+,WH.9/36$ZHH MEQ_T\@ XB28/#Y#0Y] -ZEJKJ)K_1<^1.9#7$YLYBIOY$SY)YB;-8N/YNP?4 M?3]$,7'T]TG.O:^; &1J2UXCQ9*1FR5_=ODA MX9((SKR^N%==U7/!NY>?:I M)&P$E*/U^Z!7'E#7!45QT4Y)O..^ RAR(O]%+P#":(1M>T^Q8[336P);6'L: M0;>\2(BT+H:)=7_+82.)%)PE3@4'_;HH6YWH*S]&0)ED(1NO"DUOOJ(&&R+V>6 M'%4H]A6>&U^[Z" !W*H*]2WJ 77M5#0IW#2YJ1)&RZ_C6)HK)^W3(GMLXK7\ MXVU2R(CN>[-M(+RS#16\(TNL%(HJA9LJG]H-<)5,LHPBH8>2,P&\0:\O)=R3 MI3 F%.T*-^W^G42M,"DQLD0NH2A1N!/;GZUI!5!AQHCJE^>\L*[[BI*%FY*? M2M,*@):%?G/= ^JZH*A;>)Z6'U:[%=Z7H,X B*-V*S;>X/.R^Y M0;5; &=X94+TVBTT&E2[!7!0[1: F;7;_L;WG]5?G?@Y+NY2>>JRY%:V"M_4 M$K=8?AOA\D.5SYNO1/N65U4^;7Z<)+'4LC5 _OTVSZO5A_I;UM;?"7GR?U!+ M P04 " "!A61380_1 D " "]! & 'AL+W=OT"JVK$]3'MPDVMCX?B" M?6F!7[^SDV9%HKS$/ON^[[Z[W#G;H7UT%0")YUH;-XTJHN8JCEU102W=.39@ M^&:-MI;$IMW$KK$@RP"J=9PFR65<2V6B/ MG6Q O7G@2N_\ &&%RO_!U!+ M P04 " "!A6137NRR->X' "?( & 'AL+W=OH9GQP]_B,==:SXL;JX.[)$_\/;KX5[!V^(T2R7V MO-%"-DCQ[?7L%G]:IYD98"7^*_BS/GM&1I6-E-_,RR_5]2PQB'C-R]9,P>#G MB:]Y79N9 ,<_PZ2STYIFX/GSS?(8JOF5=W?XA MG__-!X4LP%+6VOZ+G@?99(;*3K=R/PP&!'O1]+_L93#$V0"8QS^ # /(=$ : M&$"' =0JVB.S:GUF+;NY4O(9*2,-LYD':QL[&K01C=G&AU;!7P6,:V^^-JRK M1,LKM)9-!=O3/VE9BXJ9SP\M_,"^M4ANT9KI'?H9MEZC.?KZ\!G]^,-/Z /B"8?$$D(]N!9OW]X$H%#3R:F=CX:F,\:;6N-ME5RCR $%6M%\]C[ ML&@%UY%ETM,RJ5TF#2SS&\1\+;5W _J12SO2!/;3S3Q-BO1J\71N%H_4*E\5 M)ZDWL+(3K"RJ_6WU-WBQ<2"-6@F17\JF%#5'S8#7?#7/I3'30 M.WV*&&IY0K2,&NHSAX17"M:GD:9";"]5*_YG/_BLUT^7G=F%9L8SWAC/%<)Y ML?3;;G5"NHHBO6,5I*1-ZP.UJ]/;[<69LLEW0"T!6:IQD.>%QQ@EA$(3ZTLOPV-[F]0H 1"$\'M[9P M4>(T*R8P72E,LSSUP\3)F'J3*-#UCC6/W&3/+1,*/;&ZXR;+/C.E&,2+-Y4F M#I9B-<7K$4H"8,]X L>SF 6K#5JF-8=H-J%3"[81]<70Q&1VJ;G7#,3C_DF6.I;PR!%, QZ&QY2.:13FUP;4KL'!1IC^[:(>G"2; M!JI'C!0K&D Y,@*.4\*]X@A9&_F$#E MO5O)=L<5E#^0::#PZ/W-"SSS;&^R)%/HKA@.!<3((CA.(R=//;#7H)NZK+!< M+:?H7*$YR4+X1N[ P@])!-M@J0&QZI!,>YY(CP/$G; M[=_PAF]%8,M=SL 9G1*+1XJF >K#(['@.+,< 5^,)Y5@EY)1DY MA<0YY?FM(C-,TUCH=S:.($M4\,+Y-5P#HCZ9 XZ=R6 $X+&\R ^T]6BO:#K?#AS>XX,Q*F MAOSQ-]ERE/[DU<)#-S3)/7;E0$(V<1.*<=/+-3MMH?\<.#Z ]?$3I,L%3 MT!ZYB.U'3B++[_+,K6@8=%OO]LR17$B<7.Q"?>T#%K)K08'XP-6CURPN?TS; M)X\(2?*B")ED)!D2)YE_??X%Z1U3W)24%>=[@UK"YS.%@];0LF-%]F M ; CP9 XP7R!P( 0%UIWL&\:>O?;= M/(0S,""2FUH\6NXV%M9=W1X]PL2\-3V"^JVM3Z=()I9 1IL^#3'H=ORG1M1# M/ 0GR;0P]<@%,@ =V8G&V>E>R9+S:@@C_L)5*4QQ"NA[V/)@-3XEML'%GD6[ MV_&Z=[%@?4!=7EKB:>OB$5H%J(N.U$7C[95?+\LO'>QC&>T]J=M,I3FTRU/@ MKEAH/\Z.T"XPX1&WXK4]EFSE&"7F8%+N]\ WMO7O=?M/5[_: T#T^W;+%>1 MKTHN":YRBJ?YVB,64FGD27JA.3O&D7$58/J1"NDYDBE])YF>%WJ7B6F [>ON9P4::!*I2.ATGB3]P5, M6MH YR]E?UP#!2HDYN$T!+:B+VF@*+,/IC)[8C4/A9"GUUM-VU6/4&@71L*F M<<(VNP!MB^*FG!3?B]HE9R"[S,'M$4LI#5 X'2FO*&W%0)7=92=XJ?RGE3;X)+]5>*D,%B!X'IR,!I MG(&MR>S)D,F/ESKNU-<0)M-6UB=%5X'82D=23>/]8,1 C6SF0\_SGJN>D0_3 M.!^N)70D2@\]UD$=3^5[7@#...<)K\%BC#98RQ4IU/H$ J0 M4&-U1^JRDGOF[1$*;>Q(76F_,@5)5:.:;V'*Y.,*4*G^-KQ_:>7!7BAO9-O*O7W<<0;&,0+P]ZV$ MMGYX,0N<_D_"S?\!4$L#!!0 ( (&%9%.GR07WX@0 'H+ 8 >&PO M=V]R:W-H965T&ULK5;;;ALW$/V5@5H4+:#J9CMQ$MN ;#>) M'^*Z=M*@*/I [8XDPEQR0W(MJU_?,]R+I%0V6K0/EG>Y^4!&O?C$,I6>5)Z7"#">CT8MAH;3M MG9VDLQM_=N*J:+3E&T^A*@KEU^=LW.JT-^ZU![=ZL8QR,#P[*=6"[SA^*F\\ MWH:=E5P7;(-VECS/3WO3\>OS0Y%/ K]J7H6M9Y)(9L[=R\M5?MH;"2 VG$6Q MH/#O@2_8&#$$&%\:F[W.I2AN/[?6WZ;8$J,O'6 MK=YS$\^1V,N<">F75K7LP8L>956(KFB4@:#0MOZO'AL>MA2.1T\H3!J%2<)= M.THH+U549R?>K MR$?6VHS5PEUR$$"RU/I#Q#R?R[1#62LJ(,N^3YDJ4Z8P2K)[XL=L MJ>R"D8<0,/.W0/8;$=B#3("(9TQ[).'/.D7P%W2AC?(;:A'8#&PUR7]PYD&\ MMW%)8APR"LW"@;=63;+ZLW (3W24VGJT6YW&0;*+M9\";;.4H=!EAZ2LQ+ ? MS$K'Y5?=<"5%7']6IFV)KNJO-E5?^5 I&Z4FQ>]TX9FQB&**Y\:@CL#UA\3O M#NKFJ)/?P,\3V&OWP,4,$N.#5#BO=K3/VS N-F&T%@9 *W';9IFEZ!(G-5%? M$9127).3ZFSN7?'/B@TA/SM"]O4B:$=7-=6#7K.8E48'B=C5\^!Z>G3_=MT.(J$8/8:Q O! TU9C4MOQI"0?*&CV&>:2#("Z[;\=CP=' M(\),I+"4;ETQ?OXUH,\M(ED41H36A*E06\MY8V]:+;"GN_6$OC2XZD@;>,ZY M*(7= 7VR1G);1X%"?(SD\.)7@MTS\N YU&GH T$X6X4WR M':I9T+E67G;:!HKH["NP/NV=+E]Y:PL+',O0<;NE)Z[_UD9;%G"X5W- MR(C MI]N3KFU[]$EV9;E6_BM=WLRN5471DBQ?8B>IDITX MX]G))!LY,P];^P"R01)VL\$TNB4QOW[/%9=F4XI3.[M5^V)+9#=P<' NW[D M^NK6=Y_"QMJ^NMLV;?CZT:;O=Z^>/ G+C=V:,/<[V\(W*]]M30^_=NLG8==9 M4]-+V^;)Q=G9\R=;X]I'WWQ%G_W4??.5'_K&M?:GK@K#=FNZ_1O;^-NO'YT_ MT@]^=NM-CQ\\^>:KG5G;:]O_LONI@]^>Q%%JM[5M<+ZM.KOZ^M'5^:LWE_@\ M/?!W9V]#]G.%*UEX_PE_>5]__>@,";*-7?8X@H'_;NQ;VS0X$)#QJXSY*$Z) M+^8_Z^CO:.VPEH4)]JUO_N'J?O/UHY>/JMJNS-#T/_O;/UM9SS,<;^F;0/]6 MM_SL\R\?5-:+([-^6?W@VWX3 MJN_:VM;E^T]@!7$9%[J,-Q?W#GAM=_/JZ=FLNCB[.+]GO*>1+4]IO*='QKM* MJ_Q)5EG]Y]4B]!V(T7_=,\%EG."2)KC\7^;[/W_6ZL/&5BO?@#KCQS">R=_N MX=N'1EAZ4.K0 P'-OC*[7>-L7;F6W@7*=J9CPF0X'&*[,^T>!\%W89S:]/#. MRK6F73K35 '68L%8@(6J?FG-4#O\_GW;V\YMJW?QN>OX'*VC&'J([\$D-1@> M_NG^Z:J-N;'5PMI62.>EX,!=#4];4.A^4ZUM:SO3X'J72[O#T7+.= [&W37 M&V'#+RT10N2&ZO&__LO+BXNSU[_,K^?5]U=7/]'OYZ]/8",Z>(57F&G@_*]6N['#K7.WGBN[OEQK1K6[WUVZT+9)25K.OO MWBI!\^J*)H)5-?L9#K2O:E^UO@ 5GU1'^TWG;6TGA9L0K5E\VO1_,).@SQN M%[:+%A171GNFI#H07-?6H-+H1,?4$3.V9@]J4-F['3 1>2PS[ZWI<"*DZEL8 MCBK DC2QF_%$F=$:NIT/-LR ^^_I MI=H"E^NJ][A7:KGE:1UFGCT->PZ0YJ$W"'75R#5[8YJAT(_DAU;@F-E2+5VW M'+:PY[#8\*HBR_3\-4V[\4T-4G\'*DURG+2RZCS:0A4/W3T<#[A#$EJ[&U?# MO@?2#MBH';JQ16/C6[79G_;^%/[+M/5U3D$4(;1[L#1_"VY!? BQW'1K&WI$ M>AZ,[[ZZ\:S.""[#2![3R.\ZOQ4!: =6\X4*3J0$U:"M=]ZA#=)-B).B-O0X M(\X!^T+BV-F&%3ZXW^ST0JY-6_ULP)[,JK=7U084]-?!=#VN"MF$XQ46> (C@:+V9%] \F&:+>V.7WX:+796 :"H4.IM]<79'(@Z1V// M@\[0,-ZVJONESL]$=,&,0V1G0K#L1:*.(R&B80!%^FH#@ Q$;FF0N0$DA-;8 M^FKM?4T\!R'W,"#A#4 ")/DR,,P.UL76\^.F "Q;3$748]]#QVXP.R_W%N\,.TQ3__DD:%'UY&4MBE5BM4K+\8,/?@ MK=4]P!2Y_3X[$4E',\'[/%<^)YM6+NV1;;X-N<2R?3\FX9XM\HGT,U[,8[!^$L MB#A\J+B,A'F@?<,H)>K5E(?.=6J65">\R& Z^+VF*#T"LN14-I:Q?XD8Q4^OVA< MV"2$-#7AO/HIA36P3TDF%=R, SN!ZI/ 354D PGCW2>F2'3A$#<.B^!J!^C5 M)L .#@#V#P-/BIS2;[<(1"B^:($[38/6C.)'H3'?9=ZOA6E(_C/.VL9MB@)%,V:P:@ET-#5!W$]WCT@/ 8&+W0MK(8^-SZMDGQM]U M_L91C,\)!B 85,_80\Z-6M+7);"N2\Q,O[+= 7OI>LDO=!8H MJS"B![G9\TSSZFBI:UI@F5D!T8V?2ZXCKB?Z/@>_4SB\ MV(O&=/#\C0.W'M,G;W_\^_MO3\^_C$D=&**V6[?D;,:Z\6!IXH>$XN0-FJ>% M,$U,.:NL90A#5H#VF0< J6C]%@BM7>@&2D')-V$ %[^OP,B[%OC.JLA:GF\D M,!41-$$DM(44_:+W -A(W,ZW#$(K,5_@SP=U@H@2P;$"IV7MX$1@JN[4M:>[ MQBSM3)C #@[B?1PB)T*(SV/ :&VVIOMD>T(S#-1P1Y15D7]Q2Z: @X10(8'2 M\1,QL-(8) C*M7<8#M=1@"=$/G/G!#*+?6:ZHD\[H'MC:I:I+4@Q:FCK3@C& I9CQ0+Q)&/I!4>;&2G1W +UT M-@#;G*+H"I> 5MN!>64SVM,XMQS# -?0/GEXKK]O73"6V#8*GQJ"AP"%[)X] M1B1A) K1__E/H.5H(IM*'3J,5%O39)..-R#EJB0[9%N$09@#!X-JM[O&[RU+ M U:BF)0-T#&32')_>@NVO0H &[J](KCH!X#J'ABR<91K7'76_J9B&(:PDPP: M)R?;4Q! C-')IJ%)]BX+'*4P%VDB,<5HNA#"Z,AZGMX_ -I9Q/: M4UZP(M4EZ)OQ^=\R71&7Q#8%%FVG!H(.K69FE0EN_(^]ET?B!'($7#ID1TTU%34)V:+%D Y;/K)E* MTZ#CEH#JHU]$*T29Z(9QARJW&A5[A^.1J)!&3FM\F>J AS-(IJR=38:![.VB MSB%.G9L7U^G?:--V!$.W*,9(+C M>]^N3Q%/:=%'/"\\%_IP>##MB9XWQ#K(C#F6L[O'Q,,>2IS@4KO,!N-H+_S(3S@*]"(=!X1 M!0747L@3=PS*=.N+IS49"S-!=&HMVN/SLS\=$\LIYDCXAI8$WIHJ@M"F8]WD MGSKS0?WALU<[O1W_H\NZ9XK/H[^L6ZP)X6&&SK3Y=. C[1\O7E$R[^*,3"-6 MHP@<@\9A9HW<+OZ D?$-&>]2IS0$"X>/L>?;N/4&%M(X^ ;]&9@G*0H2=O"= M6[N6T&BO!51:%:Y!2(=UD:[%-!]"98J[A@X<4;!";#XYJI$XOI%18=;X63^IK2J%FD.HT5(MZ"L(;8(EAPE(G'$H!]DR#,^=I@'O MRPD 2@YE*7<2BU(:1" P46@H>4JTMVD;A*,7M MJZ$C?ZULQ'+?"EB/XDJY'8S_&>I0R@LE(OB6M\%]LHW;>%]'L=CU!$7Y M2QC72\%I>O09"?@72-Z+%T]QBN>SEU^>5;],F=SOU<&6 )J@#')H09 QFEXL MI3:2U>AN7)FLU$Z*>LX%1+056+_$_V?8U<.O:"T$305BKL;LV((8^>;4MG5$ M2)..HK-2V(Y0 [D628)AJ!Y*?HE*T6G@64S^["TO#^G],#U3FBAD>10>X-%U'.6@6D#SVT*3HO'I?%A%_=N:>E5=$ MCCF#E7AA#2")/3#Q-87!]L5[$J24E/L3/WPD.0"2CP9SC(=4],N6XM&.4Z]8A1\IF/2(W5483%$G]S-GO7_S#K MM*&L(Q:;FP-F<3XD-2AQFM)26YQVPGEN9TE*107#4:'EG<-.SE.LSM13=9@# M5"\ >;DLR+P(1PCH@QT/3[%/!J[&D+4=ZP1Z>9XN,T[&S46<(^3\R M4!C:S&BEA@TP7&$R>:VPFHBO*.;UPX[JBN))97- (U.(T5F,5$@<\TV2_:8N MXPQM4Z9$O?_8QP3B"3IEH@#SG_"Q@J%DB_I-X2!8PV*23+*OU"600:O%/LM@ MCB:F-;;:5Z;F!_U%$:3^+EW] [KXLW3#BQ6T"A.)7X$H83;!L+C"C) MU?F)9/PZ"NC%LL5W"%23.[JQ=?D51:;4DK,%JRC&3JQ[*KQDV^<7C5L;*:A= MG)2CN1K9N4(:+'H^)"@K^'";8&?7AEJPZ5TTMZ1_$=Y*5Q9UP%$[R:QZ>GP> M7O>>X1EU!FI$_+M&OCP9LXK;&SDSP"Q#X?_AY+$9@]XH1X M7B,?NC 81H[E"D*,TTOP :^R+O6QW,>)&(_M!"2^,*OCA(RV"UHTCE:^IB @ M]0[V=KEI?>/7^UC2??\A%G.17"P#8"^@L"D'2$?Z$;67<59!R-R184[38!(% M%*LQ"^DH@_U>0M2_#Z!#Z,G XHAX,1# 0*B8FQ$RG+'R'3H7[:]6MY%,3(_N0IQG^,88=I#Y) M&:F?D_LF3?4#4WVMTG>EY,=]^.'Z2C=B%N.<<:IZBX&YUN=UHAMG4 ZT?P77 M1E6]>.;AQW_$+68+"%$FGF_IR2'%QA0<%*C@A#[G6^33D=+4%DT\Q5#O;$I^ MAB3207OL)?E#\0+R'.-V&/]4>U]()U?NSM:G*TRA<2H.47=4MP] ,$WM$;ILV*^B"?"S]HQHOR3A11 MB[E40YD4?WKJB)^Y*DC=5V4/#;7VFX;S6SQ$2HLM;&;JWA[:FWS6"'AE>93$ M2"Z'0'26]Z LD*2P ?? L&!::X/G01*S6DX.:6M5_$(+M=P:6]NP[-P".;T M>S(_J&01,S*;G#L6!DF.Z]:%H@8'.!D\A/5#8"QH8R<4V=ZMZ-L"Y'A%E;(R M62J,"-7[#U/&FBVH$C4RHI$*=2J,(V->/\Z!_51L[XEWDTY!4V@\!H^8]XU& MV &&'TA"I>*D<5M+3@SLCL=>LR+AHF5S\N.=!QL94I_8B.>LKD9SK]*NYEJ( M,"0L9W:0<:G0N!SQ*A-C"]O)BN8!+K](E1'D3-E[)_W11=[<<,=@S@40O2'V MQ7*C/_99TB(BBU2H56%C43IU7=)2)'ERW,R52^4#C$&V#I[$$*D$*1+HDG[= MX?$_BN2R#4,@CV>;$#'+LX+>CHRH%@. 47=,E^]#T,?&36>MBN"EPO=A5JG40V7D4.VJ5H7)>H.-$\^J[HU.2'Y$&\ZS+ MDZ28,B..0H#83B!>0ZU'>$D;QN\,V-V,NBKQA=F/1+YP?#M%M:^E.1T(]#O4Y-S1/MU!$3 M<+\(\1*^ZKD:CFI/G5-Q%2SB!S4Z6"ZG!3VM Q,[[>_=$\)'>G NCU8>I[)C M*C-J<^P2$75]PIM&W)(B&[#Y!A0T.P62CN_TAEK+Y#!38:60M#TW^Z@PSXI/ M<\+5_\6RY+$\#IIV2@4G8)L=8\QE? &@VMYHRMZQRG/.&#@G;=K4Z56TEW-H MV#@VJ&VT ^7&$QQN]KSV'?:?Y1S#@+9L;422]F' MM*V-IL>P5U2=5PJ/'SH^_W-,/1V!B%?7;ZOG9\_SPP6C0Z]H !O$? 3OUVM, M2/0V2PM-V!"1N,+M3!.0-W/%PB N%EL!P\HQEI],*B'OJ 4N2%NRIN3C>7.8 M[Q5F>[*8AO)!;6KLR'&#;^4LL;1TY*%]&H+H!=-'R1'1<4F9TF' EJK^-!-: M#I.R'G1$"B;M]Y0+2D/BNUGOX%'8%9(5H""%,IQ8MFEOO%O:(W5/2@C=#V:H M 1;1!X=H!JCQ#1FUM U'!(@/*DV_P3Z-Q%6R2/!@1!YKJO%W"8$@8QF]8R:, M\-,# GYY>/%R6S$8(A<2)'P]>SQIQ>GEV=921TP\@SI MNSS*O5'L;KC528 VO#D$L GR:^?WN/.%HX]GL3AKV0 76CY5A.=/* A&FX/- M=&"T]F@7FV-A?I98P-0TB#+EBKJLC]C>63T4=%RGKH\<;6'D#:,\^ #6>#7! M7,CK&H2@/ZW+EI[8OX*GU618;O#L^.D/P&\4[EVT:M2U[&LKU4_Z,5G-"8QAL@..G^R^ M.).5=25K.P/@7V C-L+/LAX'L"\SZN@YQ1YH/I:$9\H[.E!)!PWU6>K+PY[? M$3^DJ!.TZA*)&.2 W."#MD=[ &=U$GG@HI=NXC]]WKJZ^W;=F MZY;*?U=<#E#(PU).ATJK0EO][>KZVZO_T*]%B!B%QXEC[,"E,UG74='"1&>^ MK$)B=8U:4=,6\2QW!OM++>6C_IG81\8Q&PV$=)NIDET6+Z5$)2%;*1'SH!RJ M&B%+#NYBHU$='U3'JN>K"/:3^57Z4G?X8SM?SV<<^O+:9923B9SQ8;$1$&[G M%@,-)45\3AFBQ7QQ_E)^BU8U\U>C9G[,5Q]C3>(]%Y8_C^&/W=S"$N,81]\6 M&],8/(' )S3!U9U&MH+T+#>I-(F#G]QW)"Q/$T@.>=5XW^F!)SJXMH.Y?,)3 M"3 =LB=!]-S 4KP!&$P&Y%40?*5'B M4 ]&+)KLCM#9:#^R\X)_\SU>%D$;>G[Q^KBCN^\8X?O\>&5NK_AVDVB%;5_< M'[#/&F6R:U/&!S;Q/BQ*VV_(R>(;>.!3SI&71SM+?QG;K\T=@1A@D-7X"S M2 B>8\I/X>9%GHG@XJ R'4,^G&*AE^#$Y1[/20J> M2#!WJ8B!B!+/Y-#!3NG6YKI23](O!Y!%Q-(1F(\#H(%:SFC.J[]DOZ+ ,]W: MG3&+.D/IM-KJ+WA"PR*(9)TM8 MZY +N@PSM4?LE+0?]!IK0#I)2C?R=15QNSAY(1X3;QZM!VZ=38G"8M7%4?S4 MF[,:Z.81>(+6QOHT8[.S *PNIS_@-Q ZG%70%F8A.Y2?X32YD+68GSA_&MZ3*[#7?2=ZVP\+U.&Z*<0+J\)%+ =#! M4CB@IY[XLEF&$%3N?T@93!PL=B,%L"2&H@/*I=L[$_W! J 6,W4 7T=5;DD7 M!6H7JSZU_A:$:QVQ?FQJR+SR/36T+(N%7HNKBBEI'VG5$EM79]=LA?[(^XIO MBA-1S\[^I"S!?FO+-_NQ=H/YPN>RLH,T+A5K+S8LQBAT$^<^71Y)9+7U$_B= MLTVCP^J$VZ4\$3)/Q0[-!4XHBBE'W'G: MM](^"'.E"TZH!S&[CT;:.-*%G]E-KM=X)Q=%;V\\A0(9%']W=?TF=8J,DC23 M8_RRJXN[.:^N?PEI!-%/'9:X#E%0J3\HDE;:%DC:/68/\(BMFGK24RI=8C*, MY4KB$_:#0^"BB.';W7!9+FC)B>O6E#GBK#;-J+Z[+Y!,'?5X-P SE_@R&.D; M-!OQ(K1"*V9T\UB;&I36G;^EPQ#R-28\:5OI+3R]FQ$4R950AVK[!Q,^_#[Y MYW@: B_SFD7.*Q\F]D^V#P#\G%XZ/;^8*1#_0%+]^(/? 1M>7)Z=O*JN'8 \ MM]HK!+@J\7;Y(DB"CGFB<7S@ 30 O >OHPAW=NOIU+5:U%@UCCT >K8XNSJ6 MC^1!_*B3)9!J$,3%?HP5Q:XNR(QX-XW=G0Z[2FPW(_%T/8R&O]K*>?1^'[W& M,V^Y1%36FF6O752*DVDS3:] 3D_-[#1"3%!L10T' <_)\2UN^53JP..A."P[ M%$^G6\_88D9A.7^F1V?D]BTU0U(J1+A+'9NC+))8*@YY58K)+)8WQ?%)GG2%&6J->_ M,=HEUL>+2M![HMV;T[]R10]%RGQY#M\R2#A&;-#!I9_6$9+$5[.+YA#Q=K8X MN$7<0/R)%_,J";^;%6 DWME%1[L#NOE\PDB UHHU>'X*QN"O'/;0TN3#%$EB M^D+N^J#6&.[;-W(8M*>6WA+O@!EH4G2M:5S*?;>TR6W+S4R RRFU8.]63<>5:EI#:K#5C,&8\/M5 M1;?9I:-OL5V%0PSQEG+T+073DS8LXN.L*R%=^8 G.:0-&?M&8G^UZFV>B9-+ M.M*%B^+/P<@X2\VXXSL0,Q+)S96+.C9@2E9&AOW3%R%S B-3\!#?Q^,%K@N] MWNL^!["%L%2ITRV.][!E)0]^A)P:UH;1A*.2U"Y=N4T>R$FWAFWDPC!:2FFE M^8!11 ]1XOX?,?:#H*+,K.=/EPXT#V3Z*_,@P,Y816\SF/#HK M/+5+MY-)@7[4?J8O/>P-:2/)^'^6M?\+7N-[W-*3$3U_.LLBA??883/0"*=O M^2J6O_+Y?H&"3R^>G\1,[P]9I0EH+E\ 2B?'!6\2AZ)+K[#.3VE5"H&VC/4! M $8(>3D#GM<)R[W?TAF3V*,?ASNRDDAO0> L3?#LLU[,6?$*\"Y$M+@+'U)T M\C-VW*P84BW!E5':H)3D_&@4.08,L8B>BS-P;)/D"#7']P7G$Y-3;!RETXS9\2>V4WRJ0P+K_",YK2B9W(A3Y H?N1;-Y$TWN YH(UM:O3"JT1"1"*UU;A\F-SP#@#UF+B]E1C#Y"\M.O'X;)_U=FA"]ZYBAA M&BV"S#X=*2GHY:002_<1ONM8CT.A)R&F^/,_Y9%4LD>Y+J0C%^4C0ICE!8AR MNH#M_#FSF$C1G"Q>B==FZ0%Z0?RN-N\SERF:Y.-V:HUB7CZ>=T1K%NU4S-C, MT@WOBCMS_XS'VH+CXAK!2?HBUEWV:!SUDEUNO(M_3&:IUX.G!F-A+&^+WL:2 MZ,HR7.]QK1BW\0\7^L-3_>&219I_><:13=(0RD(BO[C;2(2/=2DYZ@Q[-/*9^VW12@<2H?J5GDH/0Z>,2,=;P[4RPM$ MD*,R4]6&9/V/J.W47V=ZDOV%+$Q7T=\!HUN#VY[_6%;\M-(_-7;%?V$K/_M[7P?>^W]"/^!03;X0/P/?Z1&_T% M)XA_@.V;_P902P,$% @ @85D4^7FV2P5!P \A$ !D !X;"]W;W)K M&ULK5AM;]LX$OXKA#=8M( K2XZ=ES8)X*3[4F"+ M"YKMWH?#?: EVN*6(EV2BI/]]?O,4+*57)*][MV7Q*(X,\^\/1SJ;.O\EU K M%<5=8VPX']4Q;MY.)J&L52-#YC;*XLW*^49&//KU)&R\DA4+-68RS?.C22.U M'5V<\=JUOSAS;33:JFLO0MLTTM]?*N.VYZ-BU"]\TNLZTL+DXFPCU^I&Q<^; M:X^GR4Y+I1ME@W96>+4Z'RV*MYE#.K*F7_J*M;GHY.1J-1* MMB9^?/G/25S@3^*[9I[WPV$F4;HFLZ82!HM$W_Y5T7AX' 2?Z,P+03 MF#+N9(A1OI=17IQYMQ6>=D,;_6!761K@M*6DW$2/MQIR\>*R#5@)092N66HK M*51GDPC-]'Y2=EHNDY;I,UI.Q4=G8QW$#[92U4/Y"1#M8$U[6)?3%Q7>J$TF M#O.QF.;3X@5]ASLW#UG?X5^Y>;5W4TA;B44(J/Q%^;750?/JOQ;+$#VJY=\O MV)WM[,[8[NQ_#.^W:Q'_L.*C]&4MYAPEQ.JJEC?*K['++-9>*71?S,2'IE&5ACIS+U;.H(^U7?/> MI\(ZIC=>B2W]F>?9"W$K3*MIPD&=Y MGA=CSE%19(<[)5OI/=!"31M#Q&M@R=B1I5I+*T!7GG$$H:U '475+.$/L12Y MN/'N5E=*6'47WZR5[78+]89 *5\JL3$R$MV)X$R[4T7^ K]D!X*BT!,\:>ZC M+D-"ZL$VH @A6_1MT@N3H(_86B4*N$2N;Z35*F3B,YH%@;ZY$BK4FYTE$;_ MT>60DV*=6#M7;1%Z 1%'B44H$/6U7AK@H.8)).U\1<5FV8BOI$486<7G[ ;9 M62RNLUUY$I:(0!(2^@G,WW]W,IWF[SIG*GXLWG6QNF>\*[AB2RT-S&T04'(> MI;MQ@4*Y8+-8,_?CY-X^1/VN\01) 0K*$0U ^:8DZ!!:TI>JEHS0/@OZ MZ.* ?9V/8[:?$EV)Y3V'^F&(,_'K<]*I=5#<#">*6L.DUR5\+UV(?R\YF?C$ M<8/*K@^I8%#&%CX%@:Y)ZT+>2FTD:4#IULZ@1AD<.7N5$D+Y*8[?A0=]/$9K M:0J*>X$::GFKT*B*#O3H73J302O $_OH=_!P.O/1W5&-NBMKN(9:)56"]B^- MQL%7](.>P4MXG7+UE;4O3$D7,!E3N-HEU/_OZA0B>QG!U X,JKH&(]_M]M>I;YW;4 ( M L' 6<\B R[C^G[]5MR\6)W3XS%-![_ Q%MQ_6+'O#J9'[\6OSH0^5^4_/1H M7,Q.Q6\\TNPA'8C4J@,5C[P^@.C1>#8_%=>F!: KHHBA$=0/\Q751T_0()8Q MC1>]]29-<8\U@YU8\P=+KVQW->+SA LE28\?%,-S8QM5$>"DL81J@0Z Z(!C7SJH5=*FZ/Y_?W5C88K#M6I*H*Y( 1>G =>3!R M]+5/.A]&B4*-G%!@:>2UZ$C:U-T5(-('JI\EJ$2/*10J87LJHU80S;/C^4CX](4A M/42WX5O]TD7<-?AGK21:G3;@_(A"2=.7U(+)' ON^U%Z";K3;?[%H(QQZJ4MD7O;5S]?.K*YNO1<5M7]="XNE$I\-,PV5<7-[EZ4 M>ONB-^RE!Y_D:NWHP=7M3//1KP494F"8,;W*+/7JJ2- MW<])^AOO.WQ9<"M>ZO*?LG#K%[UG/5:()6]*]TEO_RZB/U.2E^O2^O_9-JR= M3GHL;ZS35=P,"RJIPE_^$./0V?!L\,2&4=PP\G8'1=[*5]SQVQNCM\S0:DBC M#]Y5OQO&245)^>P,WDKL<[=W^?=&6NDCI)?L"\^E8[\JO2U%L1+LKAHR>$7K/W6KFU9:]5(8K#_5^^L7AB+7NIJX54/!2(*MB=M6B$;E#^=;>PSJ!X_OT# MO9-6[\3KG?Q_H_V'A;)_*/:>[]CH.H0P8VXMR/F:JQTZ P*,*-AP,/@SB:"7 M L_K4B]XR7*M+.J>JWR'ST',2<7G?_G3L]%H\(M_Z3\/?[GH MLS>ZH=* >-@S&&5QL[2,)Q6UT1M9"$.:"[F2SJNM*F%RP:PN&W+89LP*LY%J M%9M%&(C(C49NR=ROOV;L@S9NS>[P2N8\@]?*(8**Y+UN#. MBZF7O,^^8!,_ M%5!>D+V\AED/$F@@RAT;/ALP4=6EW@D!?;H;U;]:M@9(YG#4/1:[E67)>+," MO+FC7=X?N*B72UBL5M9;YS>@$(5:8;EBTED?>.$DP1JK=2O9K1%5D@F4_2:@ M_*XH_#M>EKN0^<>FE%8SH?BB% >E 9]*L1$&^,R4X.;2KK41+.Y-(QA M4M<$WP$WJ'K-T/C,:*95,B M5AOA#0->;_I9!9[WT&;J$J[W+@(P^8(4 .":,HA08\<09WO ,2$2FQI=/4H M!WL]++(_5-%";P00".J0'_C+(C;])-0!E>!P0TAHL"NGU =P>MQ)70TM$'=M M2W5GGRX\"O5CIZ'[?TI5,)@:KO@=@X@RI=E*Z\(_+QI"\@#*<*,QPH>I!L#K M(@L(:IN%Q=#U:J(CB-7>\+8SY>G^PES#5)0$707[[/"'='B'W]$X)/]HCQ%K MXM3H!WH<^^NP?=JAAV>A8_:QE)A[L;V"DSYV(5@MD2!=G2JE]TU%(-0!",0_ M.4=]:*GMR:I]9F@?V=)E+B%6 2AR8G"G._\P_@<0UQU2^]IM :-%ET.YT5$% M=K@OD9,5\],@2._74D/EUK)SGT[=6"RW%\_9&W(_3.X4A9<-6A]E$15@1UXV M!174V2B[GLW3;+Q@9^PZ&TZF["/1&N,P[>N2TTZ80H2N]F4WFX]L@!#%Y*4Y5+)2ACH9C4&",?;0BAL )]G,X/0B.5LH/41YY';&CT:!# MQO#@L 6/FFK+?4KE2H5^_<,P\A@[GLASNQ.";/R M,8#=*QP[@8*ZKE%)C4K!.59'5>@/"O%$A0F:KT,BVLF$"B9:5-"D=;XHEF'< MHB@]V4#*<+801S2QH01L, U0[!URXT2^5O)[$X9P(7!VK*A<]WG)]@">2%UG MTT(0JA72>OR "C_JE^@N^,W+'8X"&76*%,M+XB"71N]X23A'8:F(O%R&H9KR M2A/:'Z(ZM(W.<(B$@*SM6N9K\H91%:)!.8Y26)B26#&"*R*TG'XU@K?IO#R<"K)FB@2(;HA:]^20I]?-0V MVJ+!B9Y<7J2;$]C^>[A9HT"T5!(]V+C&B'WF;$R.'VD81[EOR!\=M7TOYJD$ MJ!X;F^A3=P-..FMDVG>V7XU%67MJ#%PJG7@#JMF#OK)>=CS>&UI#_;1G6'F7 M41%A53F=Z>R>6[4\^ 3$]*/D=$3S7AU<'YQ=]Z<'AUUB%['U3JP>]N?MZA\I MIJ+Y+&K8N$#5I5NS$.\PJBB8C>+@$/Z@933SM[O0'6YY_4&ZBV:YOR8+/.U$ M&&&K/'E83BP22,Y8")0G=28M@WV#%"[HO>Q*21K]",NU,)\CD9!)(M)Y[IPYP?4'WU"Q0K,3F/6NB6N'=T9VB;@Z& MJ@UGD>X5@*7^W'@4@@P-7>8 W,42N",%JBN=Q%#-90KV/M?=L%"]$G!'0Y,3 M]H2G(0">/#^.0G(45$)9GL>0E[[D6Z:&12%Y$>424@'!Z69 G[PGZ1*!/6-% MQ568IPU0E]O]-2*\%!&"0GP*$4,7S#_E5Z4:J0N9A0Z0,3]8Y7NYP6*7T[-53@1^%P.XK/MZ')/)2!.Q5 M5$Y&!(%=8[AJ[0F1C("ZQ_8VKQ]HMG:OVMGYU]36%R'CU%KL4X0@$+WI*)O/ MIW10&&63V8A] .24=#P\(]H]'DSH$''^+!M.9^#ELFRH$/P"J &PO=V]R:W-H965TVG7>"][$7GD?=]]=R1/RX,VGVV+Z."ED\JNHM:Y?I$DMFJQ MX_96]ZAHI]&FXXY,LT]L;Y#7 =3)A*7I).FX4-%Z&=:V9KW4@Y-"X=: ';J. MFZ]W*/5A%671:>&CV+?.+R3K9<_W^(3N]WYKR$K.++7H4%FA%1AL5M$F6]P5 MWC\X?!)XL*_FX#/9:?W9&[_6JRCU@E!BY3P#I^$9[U%*3T0ROAPYHW-(#WP] M/[%_"+E3+CMN\5[+/T3MVE4TBZ#&A@_2?=2'7_"83^GY*BUM^,)A]"TH8C58 MI[LCF.Q.J''D+\Q.8G(=6 )G%" M^4-Y'<>FOH?(W["ES5@%\&T5/%70P*W3)Q%,"[)=61[&XD8V^0S>%1 M*]=:>% UUM_C$Q)V5L=.ZN[81<(G[&\A3V-@*A;-,T:7(L#/ M]Z#2])JL ]V :Q$:+>E1"K6'*Z%H10^6_.WU AZL$W3EL8:-]=YT$ Z['9IP M&N^Q.AI9#/>ZZP>'QOX0B]V4\ [F,2LR&B=Q44SAD5 M9ZME#:+KC7Y&K\+C"%*R";!\ ED6SUD.L[C(4P)8NX!-50W=($.N-5)U*\'' M?N$5=MHX\6U,+8-11QQDI@\2R=PSWOA>-2?",6>])6XS,U MO5/E+8EA-SG!\GD!>5Q2OO^6\'W$G$(4%)%1%D&ULI51+;]LP#/XKA+%#"[CU(T[S0!(@?6PKL Y%N\=AV$&Q&5NH+'F2W'3[ M]:/DQ,O0)9<=$I,4^?$C)7*V4?K)5(@67FHAS3RHK&VF463R"FMFSE6#DD[6 M2M?,DJK+R#0:6>&#:A&E<7P1U8S+8#'SMGN]F*G6"B[Q7H-IZYKIGY M),'.\,#+RCI#M)@UK,1'M)^;>TU:U*,4O$9IN)*@<3T/ELGT,G/^WN$+QXW9 MD\%5LE+JR2FWQ3R('2$4F%N'P.CSC%U>8_;>H8.+U?"^'_8=+[#00!Y:ZRJM\'$H.:R M^[*7;1_V L;Q@8!T&Y!ZWETBS_*:6;:8:;4![;P)S0F^5!]-Y+ATE_)H-9UR MBK.+6VF9+/E*(#!CT)H0)-I99 G;>43Y%N>RPTD/X$S@3DE;&;B1!19_QT?$ MJ2>6[HA=IDR_;39O_=WZ,X;C:GIF$YS@,:/H/Z&8,#X/#* M#+FB*3(6U!ILA;!6@H:1RQ).N"2+:@UUQ9Q.X<983D\="^J+\Z9;L%BO4/NK MN,9\JR0A7/G'28I&P=R$F8HW!L9G20IO(!F&DU%"0A:F@PP^:5:@9#5"=I;$ M9+P87< @',8Q?%3R+%=U@Y;HEAJ11IXHIY!EL?^E21B/1S .DU$&']"8*2SS MO*U;X8FR6FG+?WD*<)*$@^'X%$ZRR>GK/G3M(7*3<)1.2"#,= C_NN9H;Z2H MR-(O#M?(5MINNGIKOYN6W4C^<>\6VQW3)9<&!*XI-#X?#0/0W;+H%*L:/Z K M9:FC7JQHOZ)V#G2^5LKN%)>@W]B+WU!+ P04 " "!A613,\9CDLL# !# M"0 &0 'AL+W=OMTK_,"6BA7TEI%D$I;7U=1R;O,2*F4C5*&EGJW3%+"WU+C:U1E9X MHTK$69)Q>+^>JL8)+O-=@FJIB^F6%0K6+( T.@J]\5UHGB)?S MFNWP >T?];VF53R@%+Q":;B2H'&["&[2Z]78Z7N%;QQ;<_0-+I*-4C_CWC&H5P0$3CJ<<,!I?.\/C[@/ZKCYUBV3"#:R6^\\*6BV : M0(%;U@C[5;6_81_/IK*9=3G9V^;LM49,CK5%: M$)QMN."6HYG'EN"=4ISW4*L.*OL :@9W2MK2P"^RP.*M?4RT!F[9@=LJ.PGX M@'4$HR2$+,G2$WBC(=:1QQN=C/7+:XPAK/O _[S9&*OIBOQUPL]X\#/V?L;_ M14[_)10\E@BYJFHE:<> VH+Z4+=%C< ,;)6@(C1PSB784C6&R<)<7,.-MZ=T M6ZPVA''(.=QBWDM2+TDH8>Y*DJ3 6AE.GL]@,DW=@-S#D\&%$);\KP$;DB9DF4_Y8)2)G> 3,M/ MU"'?VH6 QG)J-(3N&DWAZ&P9U_#,1(,N@+,TFE$7$(+4([AMM$-S]&S)=0%/ M#=.6J).F/[YCXA4K*!_4!HN_*?3*L;;*:[QUX23O\Z,M9BD!AAH>D>/2)V,G MA_2>)='XP,ZMN:0+BIU92]Z:_*YU.?(Y[&C,&S44(DD81@3>2 M-05WGHA%X3;]EU&"%SY'QM++!T*^*+.49EGXFM!8NK'QC%X<_>3M>&0YMR[G M=^P%LEE7 O^KTQ^]YC?ZN&B/"9>L&.J+CIN:A3\8*EN-PONJZ]^+^Z8WG%I0."63)-H+JR[ M\R4 BOM*&W\T*A'K]^.QSTJHI(]L#8;>%-95$NG1S<>^=B#SH%3I<1K'N^-* M*C,Z/@Q[U^[XT#:HE8%K)WQ35=(M3T';Q=$H&?4;G]2\1-X8'Q_6<@XW@+?U MM:.G\6 E5Q48KZP1#HJCT4GR_G2;Y8/ %P4+O[(6',G,VCM^N,R/1C$# @T9 ML@5)?]_@#+1F0P3C:V=S-+ADQ=5U;_TBQ$ZQS*2',ZM_5SF61Z/I2.10R$;C M)[OX!;IX=MA>9K4/OV+1RDXF(Y$U'FW5*1."2IGV7]YW>5A1F,;?44@[A33@ M;AT%E.<2Y?&ALPOA6)JL\2*$&K0)G#)@S\<(UGD M_7'6:9^VVNEWM/?%1VNP].*#R2%?UQ\3D@%.VL,Y39\T> -U)";QIDCC-'G" MWF0(;Q+L39X.[[.\%^?*9]KZQH'XXV3FT1$A_GS"Q?;@8CNXV/[!##Y?^W,) MXLQ6M31+XGMF'>54J$% P#VUH@=A"_$ZC7:)#EH'9ILUL1D8*!0&L7=QE&P, M@M3# LD)E@Y 5&WI@$LG*/$(U0SP=DJ2A:@0##202QD%XDZ6XT>1,L3:/DS<]&09'3-/*\> Q!YZTU^'R7 MFX*09QR@(R&T ;&7E.(:G+*Y)W>M!N-J5QRL1'1JUJ"<:7)$0U$O6?NF&T+) M;BK>51O!,M52ADV"T;2OM:H4ADTOR#,JJ4G?%H6G\3Q;"AH'V=T63Z%\W03< M9^#]:OG72O2/=-J.]IY%ITFT^W+T?\:F:;H?35LV31+FU<]%\1(V/=OC M_T^F?\^FDSQ7_))M;(8 ;HU"TKQ29I[;:JC;.UZE\<'M55@D!QO,/C!(OL'0 MT"6="V6DR4"<9-B6I)1^2#VQ#SE=KK8AYT/R*?1TIRUX2*91X.ESB:6HG2U8 MB8%#3H!(,-Z,XUC4MC&YWURIY0SFRAB6.:F=TB()-9I0A)1P9@1]SYGL6"I" M44HS#V1@%%HNVM ?VJHBQ(WK,-]>\8$ 7*@R3W2Q*%56=D9#]Y&+UW&TT]:X M;Z2=+:!V)B[7!RBQ_ 4-7PVJX"'* U8H^T@T58&D#H3.ILT;S MGEKYH(F\"57S?(@C587+-K.AD2"3/HPI9YMY*7YM".LZG@%03B@U@+V^B\+S+I>34WJE"9-+AJCIT_ MF)3&-%(_-@XRV7AF$LLY:B].&5H7FJ@SLP3IMM!NY3V5B:O?%)]I ^,H'4-) MQ./5(!HV)HP 2B5I4W]#8*I68;<'RK;ZL/MX^^'XM:'^)P],"D;$; AMPLW7 M50G#^),SI;E.M-%YH)J18I8U'#(]]:6C1>.H^7K;P1;=%DB,37<\]I&XH4&D MI>.Y4?PP1>FWP]G0Y'!(TQ"Y_WEF<)%HGH6D_?;E\GPKV:>!1\8JE:WE\N'C M\HSB=NQN*6,LMI7+'\\]AT*.Z$I!V0D?*M;@1HH>.V..5T[L%;AYN)?PT&L, MMH?W87>X^IRT)_X'\?;>]%$Z&FA>:"A(-8[V=D;"M7>1]@%M'<[_,XMTFPC+ MDJYOX%B WA?68O_ #H8+X?%?4$L#!!0 ( (&%9%.WO#*WX D !8: 9 M >&PO=V]R:W-H965TCW:QYU96R9PW ME<7>=#(YVBNEKD97%_SNUEY=F-H7NE*W5KBZ+*5]?*4*L[X]6'IZ ML7=UL9(+=:?\WU>W%D][K91W5 ZWG!/[1:N]YO09[, MC/E*#^_RR]&$#%*%RCQ)D/CO7MVHHB!!,.-;E#EJ5=+&_N]&^EOV';[,I%,W MIOBL<[^\')V,1*[FLB[\)[/^145_#DE>9@K'_XIU6+M_/!)9[;PIXV984.HJ M_"\?8AQZ&TXFSVR8Q@U3MCLH8BM?2R^O+JQ9"TNK(8U^L*N\&\;IBI)RYRV^ M:NSS5W?>9%^7ILB5=7\6ZENM_>/%GH=D^KZ712FO@I3I,U).Q:^F\DLGWE2Y MRH?[]V!1:]:T,>O5]$6!=VJ5B/W)6$PGT_0%>?NMF_LL;_\/N?F&W12_&:_$ MOZYGSEN X]\OJ#EHU1RPFH,_H.:'/YU,T^/S%V+ZHBRJQC.WDIFZ'*' M4YTY8>:\R*FLMMIKWB,]O[LQY4I6CV(IL:OV2T,R\X3>EZ2&;&,SFH6ZOTYX M@Q>N5B)-)\D$8"X*MFXIX1[IS7IR$G'MQ4UA')P9BU^ES9;BD.$ 4 R-R8/8 M7!Q.DI/OB^5WP)=7Y4S9%F1/A!X=)NEWI(70K)55 GSG/$()@@<"[@O M@1Z=*4HON=DZ(G;2PV2R+U8(,HM-"!M."5F:NH(3K<%1J8-04:]@A7I0-M-8 M"KWSNB@:4-9@%[L&++F*34 W]*YJP$.2Z#S7]!+@#D(3\3ZY3L2#XD-PF'Z,:L515_-5\_W%!+H30Z M\<7HR@OJ/;NVKBJ*4RDK-#7KD&/+QC>I3<1O2N5+:-W41Q))A:P\]KS5_G<( MD A*LS#I-&9F]P4-5(05.CKJ.H,R++&FQ!KM.H0UN[)&OYPCKB".O$:GQ((V MVLPGVF4A;60BX0]%QX1!S\IY3;22=^+5 ^8&1Y'F^M@Y/DGV&Y@E Y;( +3X3*%#"WJW:3@(21:J):< &* S4-539";B%MU=60(Q_UJA4>>*!7_53?]Z@9/2-[ 1J1GJ4T."#V M:^V7I# RMWO*>$P4#>MQ.;V@:YK4EC6)&P_96SY<20@.GLE=+O1*6)M>&CRGF; .]I-C>[0.1QBSHZ*#\H3>.>ZP*=VX]V;&ZK)][*J M<0(1T]"@)\]C1!5ZP95,@8 F5LE?P R%J194(#T<0H3FJ!_1+ M&$]?PO2P,?-1" LDBAC=BF^UH5^,G9FB3NCIM9R1G3OI-"$?=M+]Y##ZPJU_ MTM'+N ?I DQ$O6)TV.F+2 M_R\Z3H=*GH#I?U!RS76(;%'^)$=_4ZGL)K5MK--$_K.T4 '"@=W7P&0ATFE_ M4+[S^"9 P2=T GG8EN:\L\?9WA5.5XF(RU167Q8Z/_]OJF[3#Q_T$OVC!PV(PV MK6=N)SZKU%HL:AW8C@REB)*N7:L*)KFL-<6JA;0M6\NA][;U/DYY:#CKQFD^ MM(2VA=S4A2>:)2'M"MV%A1Q%*?)@4TB,?',=FHX$/\B9+NCH62KI:II1('A. MDS1/&>/ NRC(W4RZ9>\+YO0OM?/DO(NV\@##W0ZJ' E2:'$]1\ EVN3#R=&J M>ZW6$1J]$)#3,W0;/BO% TGK7#COZGO$LWO9'9S]TP1MC*N*SLTXK.?=R7A# M]U:UKCFHQ['-$;TB^UUS^F^TLHI-+]R2LSIK#:*1@&#DVF01=-![.],;9/5< MP+QI,._DM6T"\HC$B-!SGU!NTPY][V+!1-%PF& QUQ4@35]% MT>2- _E,T=EP(X6Q7P[C"P;$$.0C T;C.XN_H9L@ L7C%J/_VC>ZO1G A-0% M&:W.5'F<.K7-&WE$A1W!6D57K;'_#\T+$TML[7S?,CQ?O*6S%%],3/>;2P\3 M7[17%6ERT$[JFQB."L+A/(Y57-KM<8V/_4>=B.XN9'JR+?9(,J*>Q1(&5E09 M3O7QHF/:N]'!BFIP--@P#SV*3HX;-A,P.Y,1,TJN$8=G-)\D93+&<7PM_FGL M5W%#U8F#+)B+&DJ] $=U]T/L/%D(_#+3A1+"<@8,':G"@2JJ#O7[4@@E#9:] M&Q0.7HHAJG\N^QCZH#=>1+P:7+^.P/E3O[:7++3+XGF^>=P(YQ!,;7("EIHZJ:NAN_U@I:?CXX.#)UG:DG[FT3Y"NYRUF1^* M2<2V&^6]WEU]J>R"_R+!Q\C*AVO[]FW[1X_K<-??+0]_,0&I+31&FD+-L76" M+(]"])H';U9\\X]>Z$W)/Y=*(IZT -_G!G-]?" %[9^"KOX#4$L#!!0 ( M (&%9%/FPN?.-@\ - M 9 >&PO=V]R:W-H965T!$&0#RVR9Z9C'K,\=.RO MSZOJ;AYS65XL$,"0.61W=9VO#O+U0U%^K39*U>(Q2_/JS=FFKK>O+B^K>*,R M6?G%5N5XLBK*3-;X6:XOJVVI9,*;LO0R"H+9929U?O;V-=^[*=^^+IHZU;FZ M*4759)DLG]ZIM'AXN1N?]7I3TXW+MZ^WZ MR$6I5F_.KL)7[R:TGA?\0ZN'JG69$KVX2"O^*Q[,VLGX3,1-51>9W0P.,IV;_^6CU4-OPR(XLB&R&R+FVQS$ M7+Z7M7S[NBP>1$FK08TN6%3>#>9T3D:YK4L\U=A7O[VMB_CK!7]:@3FLN8TOIG:$4':&T%#\7>;VIQ(<\41I;*BGHCG^!9M;@J2YFO%5__^^JNJDNXR7]. M'#9I#YOP89,_0:]_C!+4$BX$/Q4WJR)6 M90T($#B/>%M#K74E'E2I$'@Q@K"4Q A6K)HT%05B">PA*I-$TPZ9BC 2F?$@ MB7^(^ J1Y0Y\UU302U6)ZR*[TSEKP!=?-C@ R*0\@4-I78)C:,]U6F##VN.; M+0?$&A[>JZK&0X&=(O)GB*LTI4=&24:$RC)@F'8*'!@@AD.M03TGPY18OBWR MA.CJ/ 9 5M!9T1=P*W5R 6*QW.H:O\')B\B?NN-]<=6N39\\(>M."BFVJHSA MI0!*V@=XK6II3B-IP"69?R@ :[]2=9T:(=0C.(:WL]RQK#9@&^B:6,UX8MN4 M50/#$=][)O]90=A27*U+Q?'"VH>2"/F)C6U1.OT>X,[Q5!>0G.Z'_KS5.VD0 M,HLF/[8Z\,-VM7&J!L@(MF/2%1P&287\G$T!*J6Q&^3H2)%X4 "9!8S#C[8R M?R)/#^<_5&39K'4!V4IM+6"$S9OL#BK (R7C#>P)B6,-,G5+QG'BCB6.B(YZ MA/TTSMZ6.E96AN2_#8N+X[9E<0]+L)V.:AM['K V+XR'T7VXT= GBZJ&Y]2E MOFMJ>9)VUZ4>JW)B=T"&V]F8VP. MI^ SFG)JV'%(6)#L@^!KF+$[^&=S]U]D:'=.)3/G=]:8)B0JCR1(F]:GZ'\J M49(FM1L\#M08H9C(G'2LZ\TAL/+%AX$Q*H,#.VC:H@!'S)VJ'Y3*Q8NQ/PV9 M,[J:4%2*BO**$7M5I*ARB#6C>P0?4[>,< FBZR<^\"",=C+28^/*E8TJNF/C M@QC8#1:OI8IP5 Y*%25C@51:*_9=ET]?B4]6P'F-87B*LYW5$V\ZC4ZQ]?<&+N5\!WJ9/I>MG8WC4TP-UTZ\:!F>XFG? MJ<5HMG@N8X=VGU39@0UC6',LKHX\IJS-"8P>!W[0Y3M&#)N?5XY9CZ,Z](/P MX#K5*L*%N:&-Q!$KE52VFN@V, M9KG$6@99QG1GW&/L>LSOBV5TB..NTJ$,1GU"@R,I\Q"QN1^-Q9.2I557DY/=*VHODRY)@8V=2P6WV#1< A[.@8]-B366D=J(+5GK#;PUEJ9]RJCC1-!O6/JQ6BGMHBQY3 M@VDHO1M4\X4L$V(CT1"\+DJ(L*6BAK.54(:B;BER)S+L0'#PL/?XPAG2WB:G MR#32::]X(S&YTX!TZ(EUUF1"KE$RK:D+D%G1Y*R:<.:/6X-V4IG$^\FESU^* M_.*VEC4JR_)I^%",+)>_W'ZJ'(.>^(P\!+-U"2I;9-BV>%+E2:U#/5634%G%[YVID8PT?H'G0$8 M9"RJL'5=*T6> M42"H*84_,06S";6YP8:FWJ#>K'OV-1SZXGU3NN+H6W!^U"^9HB)0'+=1),BP M%BJ#27N7['6XLBL5K%;1V* ^!([R7NJ4%Q*RVFYX51;9J0 ;<>V/SAU\5.>O MQ%5+Y&J?G'>@NEBBD I;GW5RCJ:3V3F)TMV9($O>]&^$0? 2DJ'GJ.$HT]GL MO(L+4H+U-%QU"4O,9DOQI92)RTF4+,2H5,"@O.L'Y3@ Y]-=XUG-.Y&2YWO*-PTCR[T^I>7=%W+*T"ONEC! M$Y%%;+@PM]P*T7K"9JQA_!5R5=MIBW%[:JA^<#UDJUI MI!53B7LV0:(7UHH\G8GQ/<*S;_;>MNDF&%_I1RAR6!48+CN-[/2O+"LXXM1( M%L@XK>X,A,QVFB(9IWB7ROCKQ6V\*5)57:#=KHMV>D6GTCHTMRHUIW]5=LI@ MG=&TC/ =&]NDC-T>?@5'#A>Y2':?("@9SVM:R-Z=A-Z5TV=]R;C3$*FGRU-]'V*\!2!0[@(Y:T^E4.^ZR;3BST[/6OFQ65]FK@5UMA+O* M$ P.V/K5OP4QFC*FO.=>>"\"_%VGZ8O;10=$V:9F(I0IY"2$^,-& M(\YJ^16"\62-1BU48#G4L]7!H#0V8NY18R$4;6)G S'G%+O"H^ZOE>0,WM,[ MK2D!-?"56[PV%GC.^$2/KX#LE@ZW_;KB9HG[V M"REQ%'6-;?&,*<6HK;HI<2\G$7!BX8\78NE'T5Y]@?*BQ1'WK.M645K@=-H? M=8^[&F(TGDS-X]G\!(^'--!C,O*"24A,H'U>@-9BRL)_=D6:J2L?^!4=@=OA MYI/4U-NRM_Q$!QCXD^5N@\VM)UBDU-1_']*;X3U'4#M0=6U-L@/G@3^=#@NA M Q70LUR*.\N)'[34X(\OYOYX^LQ^/.IM/=V/NY;NF?WX>-Y1]GMEX/?VV#CV MP(#W=*<]\Y<]H;ZCJ1Z.#")_.7D>2B4KNU7[\-$VN5PPGY7<>?4XRZ MVI/WZY+>&G1UH3,IL_*\ I19_P,%Z$#DI#"9WKU8J16_MY(E*9%[45.&V'[$ M+N=J\[Y@:;G@K. :2,LVTOP]M7+]QXTAJ*=:-4X(VRE RUOS@K@RTN@L4XGF MJL&G\>(S&U">@#QR<@7)@+#IT&A/HYJB[+OMY:"^5BW'0*NXH::D;50/DVN' M>I16V1<'<\%^[K*U%K5NHD"9LG95V3=2%S63?RAO[;:X-E^QF-^;F2)ON9P- M;3N9F]]4 TB3?;Q@MC#=;R_I1,OP_-BAA]I1;[88_VG P^>>1IUP.-O\OEF> MPYG!7*@'-)]R.\"+G)_V1VK==*1+*_N4S*C N5W3?B2P*VL[/77C.<05O4:* M$1J4 VL('KPT_K;MG;(N9%HYSZJ4RY_\OIIP:_5*P(+_@J 7)+;I6==E\8#C MX&(YVHU2U1(84*I[16\;G9?V9<&U[DI;J/!'75&Y2'2M:J!V2%B9E[2#M_#M M2_X6[E=F]Y/='1QBHYT$VM\?F>?A0 ]ER#45&/0*E]0/:ZUU?D*"/=[@6C3- M_/Q<%0#4] JA[-J]T31X>>XPR-JZFW'U#;4S=>D2P$BON*-/T_-AOZ*0.,Q8 M%BE"@[7,_ARJY*2X]J5ZEU]7_W_V31#MF6WWJP[ =G2@4J1I'*.W8P5/^7U8 M.*LW+DZI#I-N LN(Y3X/,($F26F9*KM4T07@?G29!LR&5$L#Z R?3E050Q!R M^SOX]Q!,7+(A90&9Z-,?T]R176QUFQ>" )!,*!W>&!"/>CP9,*@V15E394/5 MA7_B?5H?IR2"DN/2O1;O9O=SQ(-*: M+XY^CF4!NH_\QQ#8V=B\1NXPOTO2WY-3#[QPH^QG$2OF,) MK_L2?K!4^\.B.(4AR/HX@V?T;373YH3JF,;H'1"S9MX.08YB[WN6OB1L"ZHC MO]G*,(H2 EOIPL&G1B^FO1OTV99[*>*+#[8R.LYT3\M$7%:V3JKVQO=?GL7J M+WL6YMO,?7=U77#6:Z$Y\C+\S:KTG8[J<3P+Q(0?B*%7R-V/4QU+"7:A'&FKD7@M#8FXU!>N8MT!(O/#K'V/6H2E^(I1>&),/4"R.2 M"(XYF2Y)RK$W74Q.0X+]*FI8;+\8![UW?M@\B(^CK%AW\P]] 7K9^\HVH\^S MZ%MBJDG0;)@/;MN[[>?*5^8KW6ZY^=;9I(9*I&J%K8$_GYZ9SL7]J(LM?[-[ M5]1UD?'E1DE$%"W \U51U.X''=!^Q/WV?U!+ P04 " "!A6134!H3:NL% M !Q#P &0 'AL+W=OAZ ,MC2-B*5)+4G'R]YTA95EVG O0%XD2 M.3-G;H?D^5J;'[8$<.RQDLI>#$KGZM/1R.8E5-P.=0T*9U;:5-SAI[D?V=H M+[Q0)4=I'$]'%1=J<'GN_]V:RW/=."D4W!IFFZKBYND:I%Y?#)+!YL<7<5\Z M^C&Z/*_Y/=R!^U;?&OP:=5H*48&R0BMF8'4QN$I.KS-:[Q?\+6!M>V-&GBRU M_D$??Q87@Y@ @83X 2E)$<+XV>H<="9)L#_>:/_=^XZ^++F%&RV_ MB\*5%X/Y@!6PXHUT7_3Z#VC]F9"^7$OKGVP=UH[C VYCE<#+"[+)@'&!Q0S+Z6P&YT57/UQ')\-PX*!L_7'?WV MRSQ-X[./MW=^E)P=,Z%01%$G"_>$A>9*YE"=6^N37')K606NU 4VV\]&&-2+ M2UG-C1.YJ+E#"\Q"WACA!-@A^Z8*@4$4RUT,7$J=<_KE](O2C##:9NES0):, MKIA"$A(*O0*"6H #1$I*^S/:>UA"H(#S9:L.. M<5 M,?N;MAFRJP!S$P;2C5'E/I928[9K;86GQGWO-@%Z"[8/VSNP1%Y[9Y>0 M;),"RF&M88Q[N>S%'_V0\O4R@L=<-L6FB)"C1<[6GHZA..$/8'!W8:KQD/1J MQ\A.QH;L@Y"^EK%IF+#;_EH^L4(\B&*_%!^XD/MUV*\=E"//7P&S0;':J>.= MC!?H*[ZV"2+SN ';T&'X0=Z'$'=Z>5'XW'+YD@E7!%EA;0/%D-V^(; !W+?5>ET39!LA 1&O>&(( M,XW"9HW(?W\.43GL3JRY,5S1B$H220X#[01EIM=+/>HB?NBPP6J%9P0*T%N^ M8DV@.CI1>#8):S;U@M$S18A^D&UY!8N U[446.[T2X>P.LI@@\T5_&B9E];3 MK%B=M$Z@]G:.NM0O/EGZW%-UXNF(=X;>&T $=\-!;9*OO^7YE<=NJM>P(HX+@&XLREAH5N:&W215X9#D^12 & M@%7A$ %TB&"?<7O<_4-$$CAF._K<5-A0#@-#P7F.+M!<9^[SAH%^94>3;'%, M[R1*DID?95&\R/QH%LUG./L!E,;]Y_WZO^_W^7..8;09)\G9 673-)HF,:1!](9'9'1XY[5:Z\)8=?)[# /?",NWW)<9DWLBNY372VNU;G^#M. M LA,.6\LM*33PJCZO$?\Q:F!G#C9HX3A^RJS([R]K86*WZ=[>A;',>;L4 G? M'&Y:WTA>.#U[]DZB.)NSNSYG^K-6@SLQ4L-N-TZC;#ZEYW3&9E$\G[-Y-)U- MV9>#'(NZYQGBBQ;3,+J@UR+%UR0:3Z;LT*E]U+L&(2_<^\L>[>*- M&ULK55-;^,V$/TKA KL*; < M)>FF6]M DFW1 @T0;/;CL.B!DD86&XK4DB-K\^_[AI(=9]$-"K076QS.O'EO M.!RN1A\>8DO$ZFMG75QG+7/_)L]CU5*GX\+WY+#3^-!IQC)L\]@'TG4*ZFQ> M+)<_YITV+MNLDNTN;%9^8&LG;Z[/Q3\Y?#0TQJ-O)4I*[Q]D\7N]SI9" MB"Q5+ @:?SNZ(6L%"#2^S)C9(:4$'G_OT7]-VJ&EU)%NO/UD:F[7V66F:FKT M8/F='W^C6<^%X%7>QO2KQLGWHLA4-43VW1P,!IUQT[_^.M?A*.!R^9V 8@XH M$N\I46+Y5K/>K((?51!OH,E'DIJB0\ZPZ@R1Z5=K2KO MV+@MNV4'O6<([^Y=Z;X[UJKG[( M>IZRGO]?5?X/<.H/VFJK;C4SA:C>MP217:_=HS(1EZ_\"Q="L5:E0XFDC(.*U(^P GW%MF& +-OE$'^P8)ZKW#&<#$JAY5&-+4Z;)'63A7>K2DK M2?7:U D% MTR=ZAYU'19%-)SX+]:DU<-7UCH1>3961R1&%?T6!,:"$,Q)@UQHV6YWF0C<5 MZF2O7!+H&E?-R/G+S'A6(ZBWM6HUS%IB*8@ :AJIJHP9T QLJL%J*,2NKU_] M<%F7V0J3$_(M&#?I[%=>L8CD#Y;O+H4Q '[C2X/".;_X&4$L#!!0 M ( (&%9%.<=V"9L@( .$% 9 >&PO=V]R:W-H965T0!5*DX39*CN!)21[-)L"WM;&(:IZ3&I05JJDK8^P4JLYU& MPVAGN)*;TGE#/)O48H,K=)_KI>5=W+/DLD)-TFBP6$RC^?!T,?;Q(>"+Q"WM MK<%GLC;FVF\N\FF4>$&H,'.>0?#O%L]0*4_$,FXZSJ@_T@/WUSOV=R%WSF4M M",^,^BIS5TZCXPAR+$2CW)79OLTO9>4L>R7C MW&S5K EO&M0.\):_-(D=TWIGG'44BY8B?8+B!"Z-=B7!N!;_3W',]#CO!MOB9G^45\?X9^W-./ _WX M?TKXCQ2?2H0S4]5"WT.-UC:-10)76M-L2OA@;K%:HWWY M8GB4O!FWA3Q@-T(N'/H%(62&[TL3\_**C)+>ET,AM="9% K(L:$*!=NB19!$ M#>8#N-#P,7.&#PC$@7X?ERD$7#5N<&=D(H&C[V3>*_M*K2;,%R( MJ]EHUW9@;^WGU[QMV]_A[?"[%'8C-8'"@J')X/5A!+8=*.W&F3HT\=HX'@EA M6?(,1NL#V%\8UMQM_ ']5)_] E!+ P04 " "!A613@/0XSR(B #S;0 M&0 'AL+W=O6_BM=GLM:510M MRM?82:ID9Y+1U&0F&SDS#UO[ +)!$G:SP0#=DIA?O^<*H,DF96>3VJI]L26R M&S@X.)?O7 !]>>?#Q[BVMJON-TT;OWJT[KKMZR=/XF)M-R9._=:V\,W2AXWI MX->P>A*WP9J:7MHT3RXO+EX\V1C7/OKZ2_KLA_#UE[[O&M?:'T(5^\W&A-U; MV_B[KQ[-'ND'/[K5NL,/GGS]Y=:L[(WM?MK^$."W)VF4VFUL&YUOJV"77SVZ MFKU^.WN)+] 3_W+V+A8_5[B4N?RBPR$,_'=KW]FFP9& MCI]ET$=I3GRQ_%E'_Y86#XN9FVC?^>;?KN[67SUZ]:BJ[=+T3?>CO_NKE04] MQ_$6OHGT;W4GSUX\JA9][/Q&7@8*-J[E_\V],.)37KB4%RZ);IZ(J/S&=.;K M+X._JP(^#:/A#[14>AN(OR#_'3VY9,.B,*AGRR$@+=,P.41 M KZHOO=MMX[57]K:UL/WG\!BTHHN=45O+T\.>&.WT^KIQ:2ZO+B+0 M4QKOZ9'QKO*"=9G5?UW-8Q= HO[[Q 3/T@3/:()GG[,%8XS\%<-4[]>V>MM' M>#;&ZIW?S%W+7]R9J'MIZPK4N\(/0-%N;8@6_E^8K>M,XW[AYUU+CX?:M L+ M0MJMJY^F-]/JNZNK'Z;55=.M?;]:5^_6YL:&%0W?P=R-79D&WORY=\&&"4]4 MB% ?MC[:.*F^^^::7JJMW0!!G:_FED8HGM9AIL73G0V@%@^]09I;5[ .>VN: MGI<$O,+'E[X!VX1/+V%'(PG_PH5%OXD=+C:^KO[\AU>7ER_>T+1KW]2QLO=V MT:-! 65LP7R!H>JJX!L0#EPBC@O]Q4ZJ MK0D52KVM_G@Q!:)F%6PG#SJ!_T!^5/>'.C\1T;55"_# Q&@[(B+I.!(B&E97 MIJO6#@@(X">0N1$DA-;8^FKE?4T\!R'W,&! JDV[(LF7@6%VL"ZVGAXW!6#9 M:@L*&7&8O44JJ<"8"&:Z-L@;&1J_:YR9N\9U:+[Q=V H.&Y:3]8SF,&A'GH> MN_$1V?]8=7-G#4@?B]8W0,AF#BMY.D-7,_N"1H4?7B528%CGP;:B8OW-M#UZ M4WKX\@*G^-Z$Q;IZSA^!]GBJ?DVR.KP:XO'8PD&L735_S7BU,7/.\ M2$<7 $?@J']\]7PZ [O0-&EWQ]F@(I8Y23N)&S.W*]>VR!;?EEPB^=[W$*O> M\6]FNP77:7"[F;FPS(&-G=!8%F0)S J!A#6(PMQ8!(#S(XEX94E[8 M]\"&A?DH@#69A[VC?$-4FO"E%*["YU:I)5)RE3H40N MQIXE%5E$'Z*;0%OE2.M;NZ?T!_Z5;(FAI\"=@B'J%VMFBE!);LD']AED%F2$ M"BPGN#M^ B04-R=FZM@ 9^I B98VD,;2B(7A&$C_*&H@)R,;T@7/F+K9Y>V! M_1)ZA>5(*&WM_6(-&@_DX$@5/C]O' #76NWFV(33$_CJ><)7ST\"HQ\"J(;; M-KS36:J/H*Q?/1BY'M0 $B/:(-@H"& 07\%ZX#W8+.(3HH68-+; +/O"2'N$ M\@X?NPZE8AY=[4Q ,]:MP>;B#M=@@!<=;(,/A#'TMSO$1? 9>CK )@T:UVMT M9D)C*70L/G/3D#H6&VT;M\'=@*%ZD+SAFD_MSXNT/R].LO0G-GD@$0XC-QGRT!1FT>6 :-EOF,&_8 M4"V(#4T^KFR(8S&^K+!O$TBQ"Z#5!$JV[1;L/%AYPP:)O MTHX U0&MYL"7[5E%%'L4V!;&W0$@ &,#;@H(]";@!?& M=RL$YLA&5RN&W9H=4C1)T4.::VF<6/=)U4>[[!N@[C8AAH4'S,7$[H2T/1"# MSRG8&1E_&_RMHX3&DE05" ;U-_=^A-%=H@,2! M<4;$DDE;P,Z&O-?Y5S;-X.%<1P0 KRU0!B\'%.L=SS2M?D1'J.XNBH>>8Z** MP]2Z)OZ#%KDVH7S0K/1YLYL,+$!"*PY^7R#)\YTH=(#G;QT L>HQ12H7;][] M\U_7WYS/OJ!?9V_.0"Q!ZS=N,24>K1H/QCA]2+A;WJ!Y6@BLQ?FR1;$,.LE( MD1CR ""TK=\ H;6+H=_B8_)-[ &4[2IPRZX%OK.E8"-4;B0P%6,> K7H+M!4 MD;\'H$_<+K<,@F&QKH# >H4MB.L!"@&G9>W@]F&J<.[:\VUC%G8B3&!($BP- M41(AQ)=1>S*&&Q,^VH[P)T-KW!%E5>)?VI(QJ"=!;\QAQ/X3*136J#%*7&+O M,8%1)P$>$?D"@%%8,-AGIBNY_0.ZUZ9FF=J %*,!:3V.7F;@8F+E)JI(" MA-IN.70!)GZT=BO(#"P>1FV6HOP#\29AZ'J-"]96XO$#L*RS07C$2:4P\%CH M5!Q8?[;R'8USQU$G< W-IX?GNE/K@K'$]%+ VQ"@!_!J=^S0$@E[HI#G^!M N4>Z&'!P@[!:!*_ .\9C=;!N_LRP-F']F4M9 MQT1B_]WY';B>*@*R"CO%W,E- =4=,&3M B6@@K6_J!C&/N*&41H+$&#KVW,0 M0,RP<.H!M!*\,7H0%IYHT[+(CP-WD2(>5XBB#RV,ACC]X?$/I)U-*()+$ Q2 M70I6"C[_1Z$KXC'9IF Z=F@N0:EU?/3H:2&4/ "&4?)E8PT;$EW3 ?>(64,& M3@=NI@6##JYF:18:C/@M.5>+Q@_D"$!"+(R8;BIJ$K)#$^)KL'QFQ52:!G&% MA, ?_#Q9(9P8Q1QAD2JW&A5[C^.1J)!&CFO\,#D%#Q>(45D[&0W4XJ.A,@48F8>O M.9?9%W3!7F_3 +K8TG>0D()TV3NT D9A%_P.D RP)Z#=-P"N0*!:A+X _=!D M ,Q*\D:^AM)+2;\1<>=8!A\@]F)""; ZY>PD"VOW[?.;O&^\ 7NT(\=()C@C MX]O5.<*]"A GV1CVO/!32.Y50G*O3H.M8U"'#6D[=)S)*(ZANM]EHE+S M.*<7R52F"#?'!.(KP:I#:%K&"IA,9-<$ ICCI(8V.448&.1\SIC@#4T=\$C]J%DC1?R!#B VM_YP=.:Z(>9[/W"6O09(+(XV#]ZZL8#=,''UYS_,7ER\T0*7R"B8O=]W>DUWRNR2QOSL=8]OS&^_ MP!/S_(J5#.MD*\*GF!$V;3DG>/BB^L,DDP$#O4*<@D5.!F"GEHK$D'7?6DFN MG3(:7R2C\<5I7<:$,&$/_ &S%[?DP4;-PJ\<:N!S->*.AX\QDEB[U1I8VSCX M!O$!F/N.,QJ$Q7QP*]<2NN_ZP&E[XC-R59@)G":+D!+=&'I0F-T'<.P1U/+= M_N1H!#15V6F5@IRQV8*"WTLZ(R<"P,B +7(;3DY$@M&('83.N6D!\V^,BF&U MM+58&(BJ^D#Y#0A?3YK^V46NUE^<9/XQ@Y>,(LE?[?MYA\D+U>O1LOSO,M/( M:Y,]NSW^XF28H[<88U(>""?FA#L5$PMU1FKRI@WVK!1%[$W!6 S?**@P*_RL M&[5]JL2:WZK1^,_I*XAKHR6T!&$8!R&< ))A>.X\#4 O3DY1\K2HD.% &#W: MX##7-E%L/88;2-8D.0B6JR_[&&VX91NG^/X@^T1&"LP*NFQVXD5DJIFG M(HH:%8% H#FL,(Y<+A,7N:9!1&"4V%+DF$OCR=,(1REIL^P#@35E(U;GE\!Z MU"W*.V+RAW$NI6-1(J)O>1O<1]NXM?=U$HMM=U+'BHZ8V>EL\HCO&%6@SQ_F M.X4?PT"(("DN=D[0/SDA;&)H)#L5;MTP+X]Q4 -;7$^Y=(\V"CL'\'\((/45 MK4*BB4+LW)@M6RXCWYS;MDY(=]1O!BLM)0F(H7XDDF 8ZD0@-TU-('G@24KB M[2PO#^E]/SY3GB@6Z7'2D467"L'R&@?2)#CBES^)H+&\/D4O&*=1S\))(;K, M0G1Y_DR3PJ.!\VJM5^F&/+^AI8BP='5;N8#6XOYP<2Z90]7Y8P=>("0V& MU.^GU3];,I!MBW6#.783#:44BQN8L/D9OG<=EUYQR!@W$M6F;IS*8;D*;1]E MK4A9=PR84!8H*ANGDTLA& [V+8] SH->1:>[,"%0F8.%HXP?->\^K:Z'-;1$ M5OQM9^Y8<47FK";8O\( M$308#3,)+A"C,\^'^\,E<7$+#ZX/MFNP*JEZC+&S=*9]E DH><.@F+L-,&V^ ML=V:+3)[*JIOD(\V"P:-G";)GPVDYE,(3[O[X H9D#&UPV6.* 7\!\&L)FE! M2'"(26Y5ML#5GZ(K=[-"Q85*P,#^)U,^<_>1*'EHVR<2@Q:L2&[+P M$*W_ OLAT /U6"=DDS(I2RT4Q/C<7X#3)78@OEGDI+;I#G: V9Q3BNW!7*J&?^![<*P#NCVW$26 ME>JDT<^=HK.G)RWW]7X]<-3Z?^88U;<.EF7/L1!9CY4<#R(:P=N+1;_I&=_! M#@*'?M$"5O$;"BP:CK[CP@"!#?"&V"MXCK2Q)\BNA69-<&Y0) U(&=;M;'>' M".62]F)VR7U3U'HP0KO807'BA9U#&(GI^@IS+!V%>]Q"PDTU9?>0[JO-!GY< MYV1>!$.$MT"?^J;9Y=IN8TEKCW2"/CS/!AFG8Q>C3C""^,!@I6\+XYG;M<" MQM%"B*)T(KZB#(3OMU1"%X\NFP.6(4*9>E.8=] M7Q>))P@.B +,IS6 T?%FIX2KI+)IQZA M[-=T4V?&]B6F.K7:5J M!M%O#0+T3[(9OZU-R,W=L]-MV3]*/ZW8WV-=1Y\_RL MIR"6"M<9T0K23V5S MU*EJ=B9Y[$!I%;'UZ1T*,9?_%TN)Q:"Y.>-6QDI M$U^>#4=S-6[L$FFPB 60H**,R>W*P:Y,J+5P@PZ(+$$"^](=2IVXU-8VJ9X> MGX?7O6/ 2AW*&NI_TLC/SO99Q6V"-G!;3C]G0\'PX/E9&=IBOR%_CP4VS"IR MF:=L3.E#[ UCZ>$*8DI #.$8O,I:W:4B-J?#//;PD"+!K([38MJV;-%,6_F: M0J+Y*%325D/-(7K3W5D\H"I\A%Y&DP M.P0JWIBY=+;"?B]V5=Q%T&;T[6#[1+P8&F_0PREG]D(40J<;$S$]:U;!2H]4 MYZ5NQ,4_*@$C(FK ]R1!X( R95S$8>3:4D#WQGW^ZN#*J8F172SS)__>!V*D M/ED9J:^<^[=-]3U3?:/2=Z7DIWWX_N9*-V*2(K_]LL;&U#9UG>A$M\Z@'&C3 M&*Z-:M4Z\LT__YVVF&TQQ-QXU*4CUYBZP7!0H()K/YQ(DD_WE*:VZ&PHJOS6 MYJ1XS"+-/AB]![.((BCD.68Q8/QS;3@CG5RZ>UN?+S&AGK=!4FT;\X&/.1RI M;6AO1\$H<<+H-/>G*PB4M'!(*8>>>HK7O@_(%LH3'X0OFB&1^UU0> M)=0HQR#F4@UE5OSQJ5-$P;5N:GD<=H;1$2/3<.*.A\CYOKDM3-V[0WM3SII" M %D>I72RRZ&PHL@"44Y,"@F P&!8,*VU< M4E5UF 461L3J^OV8L68+JD3M&=%$A3H51K2INI+FP"9&MO?$NU&GH E%'H-' M+/O7$^P PP\DH5)Q-KRM)4,(=L=C@^<@!:7-(.3'@P<;&7-SYA[/65V-)I6E M1]2U$.M(HH+90<:E0N-RQ*N,C"UL)RM:AOS\(M6GD#/#AEWF0KB"L MF?1?T^2#IIPC W(@ED_D!LKF&]#NE%8CMP?VBVQ3 MUS7LN-.WT^I?^\\;ZN;$GHTA+0'7BZW<6N"1G4>QHP8P*JI&.M8XK?YR=$KR M(W+0I6BM)BFF7)&C$" UR8C74.N17=YUDM 2^L)S+LKYG@+XLAE&4Y_V1/.O MI4#XMMGEAW,0K.Y8SFKD^<27%@<@)(<^=%]N@+T?\F:2<,' )PP#ME]LG:L\ M?@$*SJ$8UUP*#SP2_A\11O*ZT3>W8B\'S?SHPN200GE 58\H2-5[@8BZ/N--(VY)]1#8? L*6IQ&R\<(.T,-DW*H.3P^?3@&6_PU"78$(E[=O*M>7+PH3_1(8J_L M4FT0\Q&\7ZTP(='9(D$U8D-$X@9N9YR LD4QE4EQL=C@&B&^JO?;HU)Z"WE' MC9U1FNVU2"%K(2UXC=F>(J:A?%";VVM*W.!;/N*JC35E:)^'('K!]%%R1'1< MDK=T*+FE=@::"2V'R5D/.JH)DW8[R@7E(?'=HB/V*.R*V0I0D$*Y5BQDM;?> M+>R1*C EA$Z#&6KK1O3!(9H!:GQ#1BUOPQ$!X@.3XV^P3R-QE2P2/)B0QXJ: M%T)&(,A81N^8"2/\]$" ,U+,%H$^GUV<7SX_GSU[/#^;[#$8(A=2)'R]>/SI MY?FSBZ+! ##R!.E[=I1[>[&[X18X =KP9A_!)LBOP>]PYP>./IT)Y:QE UQH M^2@?'OJB(!AM#C9>@M':H5UL3K8@A+OJ$Z=ROGF M Z>STX=$;XZ<26/T'NUH OA_-^1#WU,M7A/P RU:@6AVY_6P@RJU"^%97AG6 MW)E0>7CBH938TSY^%UQ=?;-KS<8ME/]N<'7*0!X66DK: MZA]7-]]<_:=^+4+$L4&:.$4T7%J4=1T5+4R_ELL:2*RN42N.>ARCR.C!_M+Q MC;T>I]2VQY$D#81TF[&29A'%Y?0IX6TIY?.@'$ ;(4NN-0@&0W!]4-V]GF6D M8(2<@M*73V(\MM/5=,(!.:]=1CD;R60?%F,!=PS5_); MLO6%%]T[.(-9]&.LR;SG!H#/8_AC-[6PQ#3&T;?%QC0&3_OP86UPP.>)K2 ] MBW4NW>+@9Z>.7Y;)"\EL+QOO@QXNI$.B6YC+9Y278=PA>W+@4!HX*DGNN-?8 MT4F%QN(*!OT4)XTJ+A#A@1PF*-?'6F:R:A$%U$!Q* QJVH?)5R4L=R\E@JHC M!/'4NERZL@DD6,@T7:9($H5E7PD830P3K,09B1(E#O5@CT6C72PZ&^W'23>< M[Q68G;X6X+HX7SWJ!*EEW1!57<1+5_X'M:_<05B#5Y M9GP##XS+U1S#H^%#)YM.&)A[PF/ 5:NA), 9$"L\:%B>XB_K52-QTD&Y/T6O M.,5<[Q5+RSVX@N9(R"])VF,GWI.;+M,I&BFRI/7[%SLH88ZO9++%?75RQ8Q. MSNVQ][2$QMP)C2?)H?;S2.FG?.,)@5%Z3*H)1(*YS_48!,=X:(Y.7DO[/Y?( M.E(9NH 0M1RBGE9_*WY%+6&ZM>5EDA2-,H.UU5_P8)+%R("3 M=8>;CCD%J:Z;^T.O1"[V5 ;\B,6,1XUP?W7SG66US]'0G MU_>D^Y<8T0MO-NZ>,QQR*TUQ\P2,C2(WX (!@^*XHY9J.?6$ 212%,@V7K?2 M":E84<\+I.L9DC;A2RRYDQ(3YC,JFIQZJ&>5#JF*W:;8R. U#R+J(],5G=U* M'R+C[\=HH*6GO)0EV(B=!'.0%KD+XE8.%,G1_PGG?5CKD NZ##.V1^S)M-GW M!LM9.DG.G/(-0&F[. \C;A9O!*U[;MG..<_!J@=7>>2&IV5/ESG!$[0VUJ<) MFYTY 'PY3@2_@="1+](KG>BH[7V"/4G0\'J,QO ]5-)>D&[$X3M+MKZSVFEA MV[71O/C^P8'!72-F9!/Y(,-'EC(7B_9;-BEW=/%GM8(-2:6,T>TJV"U=(WA M"#UR2O6.'1!.;TG!W&OJEEQTP!K\?K"5@@O4X2.7BJ!7IAA"S_GQ);",.ZAS MX2%E,&FPU.(5P9(8"BFH+&#O3?('<\!GS-0>?!T5["7S%:D'K_K8^CL0KE4* M$%)_1I'Q/5$.+!)RZ+6X0)KK#XE6K1:&NKBY,'9'WE=0-#CT]_SB3\H2;*:W M=+NB:#>8+WRNJ*!(#]9@[8,-2X$-7:BZ$]P-WMI($>Q; M3^%0$8Y\>W7S-O?P[*7/1L?X:5N3)FNKSM7-3S&/(.9&AR4A@DAP: Y0PZPT ME)#R>LR@X)%^]5QD=JBHC&E*5A.)T=BM]Y'+58;O_\1EN:@;Q1T%E-/C>@/- MJ%"D&P"S.IFE;0_,7.#+X'-NT0JFJS('2CZANRG;W#JV D&D0SOR-::B:5OI M+;PMH" HD2OA'G5='$SX\/L$-]*5CWC=XR1Q7ODPLG^R?=4__)1>.I]=3BJ) M*]Z3DCY^[[? AI?/+LY>5S<.,*M;[A317 W#A^&+( DZYIGF,B(/H$'PB? # M13C8C:=;'M1!I'I^ZL[0NPRV^=H[/@0*,;1.EC&W04R:.F66%+^[*#/B55UV M>]YO*W%%'%CDV[(T!:#MOD>O.R-3YC:#9E@$F:U9=-K?IK"?-M-TBDLE#.BW M&B5G9+FD5I"(1S/YGL]R*L4CZ1PF%H0&3^=[,=D!)&&9R0V?$[V?4)\K'Q]=YER"F_H3.1JB._]4K.VK$YX';?7%S3 MRRY2L]G#-;9/--RC!\1EB7I!*(-W8GVZ& G! -J]*?TK5X)1MH OZ^)[: F6 MB0TZN!;:.@+&^&IQ%2D"^& '!PR)&PBG-WCMEY#PR:P (_&MG0?:'=#-%R-& M K16K,&+PC

+8T9,ZWU5ORVRD7 J4K^05?PY&QEEJD]Z_);<@D=S<<%''!LP) MV\2PWWT1,BOGTT(&6T5GA M4-5]/N0D9WN!+!EFQC)BB]F<)V>%I\OI-D1IG=AK#-27'O:&M)%D_#_+VO\- M+WH_;NG)B,Z>3HI(X1I[GWH:X?P=WZ?T=[Y20J#@T\L79Q0OS"[?5-\7U3:@ M>?@"4#HZ+GB3-!1=LH<=&)0EIA!HPU@? &""D,\FP/,Z8[GK#9W^2:72'6RTG6-M;B%7\$SHN&)Y60\,S!Z2]\(OE^=#1"*TTC69F*OY M# #^D+6XG!S%Z'M(?OSUPS#Y_\J,\)\"X"AA'"V"S#[=4U+0RU$AEKXP?->Q M'L>!GL14L'-0\MZ$5!]$L.J8ZB@HQ/ MPV$L^[3R16/T(!2.0X?JEF4HO1\\8X(]W52J%VV(("=EIB(4R?JO4=NQ%.F3 MXN]P8;J*_MH87:+>=OPGN=*GE?Y%LRO^.U[YO_ 5!+ P04 M" "!A613X!ENFH0" "#!0 &0 'AL+W=O]C9V.3#EOQ!:?D+XW&\M6W*,4LD;MI-%@L5Q$J]'=>N+]@\,/B3MWM 9? M26;,BS>^%HLH\81084X>0?#O%>]1*0_$-/[L,:,^I0\\7A_0/X?:N99,.+PW MZJ^4G?/6D:GWP7:+ \D&06,ZMV8'UWHSF%Z'4$,WDI/9#>2++IY+C:+D6 M3CHP)?!('6H27:]T<1B3/W-RJV4IM)#_6LT[. 3]AB]W=]; MQ[<]1_GJFQI&(11K1^@<@54(A6DS*EO5NW_4]K-)O=+O7"-R7$1A[O85H^4J MW -N(&&=H0U=?& BG3$:PD!JH,JTCCFY2WBVHL /.5]X]R2=\F(T'8Z3&:S. M5P"#]'IR"8/):,:XAH0".H4^!,UOU86G-YV.?8J;X>PV@8]F$1\)HT:[#?)W M$# [C?2[_0NSZH3U[MX]3]^$W4KM0&')H&D,'PR?HW]WE/U!+ P04 " "!A613J74=*-(" H!@ &0 M 'AL+W=OK#VAY?FO6NL[L.R=]W=@V.$R7T!>_.S#ESL<\PVTEUKW-$ M T\E%WKNY<944]_7<8XETWU9H2!/*E7)#%U5YNM*(4LEXAE[NY-_ .AILBRXTU^(M9Q3+T#HZFX2N2HOF6&+ MF9([4#::V.S!M>K05%PA[$O9&D7>@G!FL:HU6;2&6)91(9@;UW>K54M15"WSAN#6]9W"1 MK)5Z M*_$GSVQQ,3@=0(8YJX6]4]O?L(UG[NRE2AC_"]M&=C$;0%H;J\I6F1"47#;_ M[*7-0T_A-#R@$+<*L:;CGI MV=5E^K7FAOL,J1P>6,HM_"[55F"V0;B1Z1B&#VPMT(R6$TL>G=XD;:U?-=;C M ];/X).2MC#PJ\PP^U9_0DCW<.,.[E5\U. ]5F.8A@'$81P=L3?=AS_U]J8' M[%W5ADZ,@6M5KKED#5-D!I?&4$?TL_/7Y=I832SZ^XC?V=[OS/N='8J#FBNK M!;J=>VZ_-Q4+,6+ ;6Q M0?V,@]5#@2X%%9.[GW\ZC:/%+P;H5G"B'/4J,"%4RCJ66)*N:IT6U XDQE,$ MJ_RII*19)C><".,A<_GZ^O\B NX>(5?D MGIFH2?&ZUAJE[1R01BKJC,L-G,3!6;)PD%-FBA&9PJVFJ:;L+H!+, M:1(4)%A5Z>S,DH1LNM9#38-'^+A-P2L#410LI@MXT"Q#R4J$*(@6"7Q4*MMR M(8B601).X4%9)OX3\ G,ID$4+XA6J:HE755LQ[I,L335-4GA"PU<0V&=P' : M)(OY"-YCCMI9L.R%+H9Q, _#4>OEK122:D+ 2/7VVS+UZG@"TR0XF\=PA,[S M/9WG/TCGG$MN\9V@$=PGA7F+OT=]'>9OGZ^Y8XFGAX/$J5B6Y]SG^@U&FH[4 M&;->H0?]6SJ>P_"FS\>&CE^\HT>#>2W@#YXC7)9*6_Y/D^D#7#KIV!3%L$.F M#5"8S'U%WKF8VUELOZ/:K)4E#M&G31/@K"5"%R6^U77DC'HAFAZK=K*O=O*# MU:ZT K\P$))F<:#CMTI]W!%5U3.W,T;EIH^M@8(](ZP1I:MYQ5QGD "D;H!1 M1HAC;CQ5RG61DF+7])>F\:0LC:B4\#+-Z9S+C*>-0LN S@6]NA'1E,L1@"YW MM&'4(NNY+UCFM7K!DVJ:UKY;E6PNVZ9TY#(!8= >BS?8!\/D'D\S9O/:UB38 MXJ!QUH(;PV?'C_ZG%8:/DM',(S:,_+?1_81PA\\HB9I4_7D<+!9S-P'C8);$ M\)GFIU#&CYDXF(8S-QV'IT$T3VC@<%$[8GD!<@^F<)!)(!RWDN$X.AN]1:9) M;QDATF_\RF7 3[QF+]F?[K>ZRV:9>15O5L)/3&\X951@3JKA>$&303=K5O-B M5>57F[6RU&'^L:#-%+43H/M<*=N]. ?[77?U+U!+ P04 " "!A613'W,A MK"H# "2!@ &0 'AL+W=O#OP0>[(LY^$BV6G_U MB]_K991Z02BQ*?E9U&[ M9AE-(ZAQQWOI/NK#;WB,I_1\E98V?.$PV!;DL>JMT^T13.M6J&'DS\<\O !, MTS< [ A@0??@**A\SQU?+8P^@/'6Q.8G(=2 )G%"^4MY=(9.!>'<:F/H?HW[ M#ES5@-]ZT5'&70R*WL/5)[Z5:$>+Q)$G;Y]41];;@96]P3J#!ZU<8^%>U5C_ MBD](X5DF.\F\91<)'[&[@3R-@:4LN\"7G\/. U_^/V''L)% M6F?HP?Q]P55Q=E4$5\5;TJF.ZEXBZ!UTKV;[M?Q>Y/25.K<=KW 942E:-$\8 MO7&54&FJ(.N\>]<@[+2D0A1J#U="T8[N+=G;T1SNK1/TS+&&M?76E'.'[19- M2/Q[K(Z++(8[W7:]0V/_Y8M=E_ .9C$K,AK'<5%,X(%7#TXO66T'O M"DH8YQF4908?>J.$ZPT&FYUX]G,+^?4$LCC-&(R+'![USATXV9109CGA"O@# MJ2 ;+6L0+>7V";T*CR-(R<; \C%D63QC.4SC(D\)8.T-J$D]FTQ%;O.@3+9I]Z(:6=/;*#2WCO'MNN.NAS_PT'[KU S=[H2Q(W!$T MO9F4$9BA PX+I[O0=;;:T8V':4,_#33>@,YW6KO3PCLX_X96_P!02P,$% M @ @85D4]&- *[% @ M@4 !D !X;"]W;W)K&UL?53;;MLP#/T5PMA# KCU)4YS01(@:7*R'-/"BMK:=19/(2*V;.58V23C9* M5\R2JK>1J36RP@=5(DKC^"*J&)?!8N9MMWHQ4XT57.*M!M-4%=._5RC4;AXD MP<%PQ[>E=89H,:O9%N_1?JUO-6E1AU+P"J7A2H+&S3Q8)M-5YOR]PS>..W,D M@ZMDK=2C4ZZ+>1 [0B@PMPZ!T><)+U$(!T0T?NTQ@RZE"SR6#^@??.U4RYH9 MO%3B.R]L.0_& 12X88VP=VKW"??U#!U>KH3Q_[!K?8># /+&6%7M@XE!Q67[ M9<_[/AP%C.,W M)]0.IYMXD\RRMFV6*FU0ZT\R8T)_A2?321X])=RKW5=,HI MSBZNI65RR]<"@1F#UH0@Z2GT'AB93'\664KB7*-\#[AJ =,W "=PHZ0M#;R7 M!1;_QT=$KF.8'ABNTI. ]UB?PR .(8W3Y 3>H*MXX/$&;^!]5*K8<2& R0*. MRE_Z\N&*FUPHTVB$'\NUL9K>S<\3:;,N;>;39F^50>-4-)1';>!%TU]K\TDX M-ZM34[,JH%TM:K*B= YUOE+('Q27H5O7B+U!+ P04 M" "!A613B:8-C8@" "0!0 &0 'AL+W=O9)2MW\_ M2G;<#&C\H@M%GG-(B5K42C^9 M'"2RFD60:%M=4\#$U68,G,M:I0TLE>Z9)9 MVNI#:"J-+/=!I0B3*)J$)>,R6"V\;:=7"W6T@DO<:3#'LF3Z=8-"UWXHK#.$JT7%#OB ]D>UT[0+.Y2W.9KO@PB)P@%9M8A,)J><8M".""2\;?%##I*%WB^/J%_]KE3+BDSN%7B M%\]ML0QF >2X9T=A[U7]!=M\Q@XO4\+X$>K&=TC.V=%85;;!I*#DLIG92UN' MLX!9="$@:0,2K[LA\BIOF66KA58U:.=-:&[A4_71)(Y+=RD/5M,IISB[^FX+ MU$2D-4H+@K.4"VXY&OCXR%*!YFH16N)QWF'68FX:S.0"Y@W<*6D+ Y]DCOG_ M\2'IZT0F)Y&;I!?P :MK&$8#2*(D[L$;=DD//=ZP-^EO;\D.8-M6X/$:>9W1)-[50?A0(:@_J4J'?JV\OK.O3N:E8ALN &M&@?L9@]5@@ M9*JLE"1\T\L(-6H$9F"O!#4E73678 MU-$SFYFH.:Q]/5;=8IH1Q*CW<8M9: M8F^)J&[NB9(EQTH93LP?8#J+W3B,H2GT.74RB"8S&">=0DI/OB_ MP!#Y4=JF83IK]]VLFRY[\^@=02P,$% @ @85D4ZKD35-I!@ RA( M !D !X;"]W;W)K&ULG5AM;]LV$/XK!V,%;$"U M]?X2) &2-.LZH&N0I-N'81]HB[:%2*)*4G:R7[\[2E:4Q%:=?;%%\M[ON>-) MIULA']2:*DR48+DR[/1A7-RF1"](?@SXUO5>P;R9"[$ RV^ MI&)Z3(#3C1RMSU*DDQO[S3OJOQG?T9C> 0I7[(ZU[=B^QMO_0E(WD+DROS"MJ$-D'A1*RV*EADM*+*R^6>/;1QZ M#+%]@,%M&5QC=Z/(6/F):79^*L46)%&C-'HPKAIN-"XK*2EW6N)IAGSZ_$Z+ MQ<-'\BN%A2@PUXJ9<(WOV3SG:G(ZTZB&B&>+5N1E(](](#*!KZ+4:P779.D."KSCU10\VP+7=IT!>5[GLV?D>8?DK9GDK<\W[ DAIN%" M2E:NN'G^^V*NM$2\_#.@S.^4^4:9?T@9EE%:YQS$$@-<;K@T>,:57G/8<*71 M"E:F4)?M0E24 +4O\(.JJ'Y/5,46_&R$!:JXW/#1^3UJ68HQ,^!L1<= MM&"8T7&&+'M%[5M!X Z9]7N-D-IA!^,2'&O6*T9OR*B7M+[E)LZ036]!#>,P M/M:P?=R#(=O#X&$V/1CH74'7NX*C>Y?J-0$+CHA%V_%67M*)\$NX73Y,634?P(_G,#MW??G'1\A<-/?<&S[ WHF M5UQ/D"$,NS1;Q(F_U$^1Q?3JMK&%80+WDA%43%]EC^CY6')=RQ+WL*%0;"HA M/M]V,/:AS;2FQ_"#9A!YOP:-A@2\QP=D+3C&:HU>X6F><,)P^<,@6. M&?M0,ZCD,&H>^!.6!@Z9;4K(:^-@BPC$"E12;+*TJ3_]%FG3AN%31D28@Z>, MYRG8\ 'KOL)QDBX#D6._S@E1/AW<9NKAXU)RCB*QFM%M:N@<["G>(3T^/"M( MZQ-G4D$X=1SX; *3$O6291(V+*_;<:' ZQ*4N8A_ 2>>AO90?J(N/]'1^6EN MZ<'J'1:V=[XP$W[V+T+SE?QW#0,P;BO[58W>-;LW,L.;E;KC/05U[#ZW27'$ MG37 -8R:B=^]_GXN6C'GA\T MQV$T8..^"/2,="W;=\@(9VK'*"L.C/.WNZZH3&"WYCV$AC&<(_"UJK,208_Q M&H!/W,$G/AH^!'042_H:F-9E-GP7#,I^QPC[##'JLO\+7Z][?XLKZKWO1I!K M)4G8L.X@XT?-6N(K*&M08MEAW%P+/7#@/#$YI'1?G[;">/!V3[H\)L>WZ:+* MQ1-V+W7H?5#RA5B5&/!T7U8'->W/ZO4[5,(6P\%4BP+UYM:^7U/G_5D[^>,- M)LRVR>+STQ4-Y@;:&UYB(\:"BSS\#:D!^!X]1MCRK\L5BN,2<5QR$? M LMQR2/7L?P@(2\]*XCWW_^SWO>%@N/ 0E]1%$JN2]U\:NAVNP\U%\WWB6?R MYBL/3O@8-P4Y7R*K/8UP-I3-EY-FH45EOE;,A=:B,(]KCO..) (\7PJA=PM2 MT'V^.O\/4$L#!!0 ( (&%9%--5N$!.P0 ! * 9 >&PO=V]R:W-H M965TI5EP"&O%=8-[H!SZPAA M?.]\>OV2UG!?WGG_ZF+'6%94PYWD+ZPPY&CJ?*KDERFJC-RNX M4)TU@F/")F5I%,XRM#/S!ZH$$QM-:L!4E50!N7BF*PYZ, T,+F#5@KQS=MLZ MBS]Q-B'?I#"E)@^B@.+0/D!@/;IXA^XV/NEP"?4E&88^B<,X.N%OV$<[=/Z& M_Q?M J-=NFC_OEEIHY <_YSPG_3^$^<_^0POUDS1<"!R3>YD53>&.NYA]Y9J MEA,J"G+/>&.@(#^#.;;CIQ=\+H&L)PZUV6-+@:P;7)'G4@&0JDT_ MV/231\1Z.&*S:'_AGO385*"HD*DL9^-A,2J.=__BRMC*+[0-X2U@798$SS/M$$[N\V__9+%471] MQ%D:^VD4DF3BIZ.(C%(_SK W],-QXI S@;L,P85==+"W:DL.A!U>AM&@$^*= M,.Z$*!OTY#E#]P2?1SV?1V?S^488YN+$4Y0L(6\4,PQWYN$]YXW-[EK)ZB/K MS^/X21#V6KK2-4^ K-[P/<)=YL>/ECZ128Q1;-2TV(P\* MK)2\ *7)"G+::+#$P'4Z&!7>9 TO2(D*\\[*; 0#+,QX.ZN02ETV1X2SCB^_JF-_##) MR-+IR-KNE+;QUXW*2[Q #T^:U$^RU/[3,1G[89:1S$_'*7D"/)99;OK5&L$P M<9&?)8C/GZ1#@G65Q%:>#"V_W M%Y/!!/QG%^(\G\8'\0I6BCBF? 4O\.,Q( M%/G#9/RA>98&=S,:^A.$'L=^F$YL,XFQ&?G#44J.U5ZP=TOCF;=Q;Q&-BS;" MM!=V/]H_=V[:6_Z'>OM6^D;5AN&NRQY[UY\^&TUW0T M-:*%UM>TC8R:OL>%FIEM4[J;4U'#K3*J8:0EY$4"-9$D+4O?K:!Y=#EY$55M_P+*TY17NT7YO=^0L-K$4 MHD%EA%9 6*ZCS?QQN_#^P>&'P-Y<[<%G4 MTA,Y&;]'SF@*Z8'7^PO[YY"[R^7 #3YI^5,4MEY'#Q$46/).VA?=?\$QGY7G MR[4TX0_]X+N\CR#OC-7-"'8*&J&&E9_'.EP!DN4-0#("DJ!["!14/G/+LY1T M#^2]'9O?A%0#VHD3RC=E;\G="H>SV9;GQXITIPK@[E/<=H2@2W!M)^X+9^#N M&2T7TKQ/F74A/9#E(_UVH$]NT.^QG<$B_@!)G,S? 0-3JK5 5[+04N4 #KYN#L>0:_>N- (LIP"($6-X(\.F,E N#T)+( M$>Z$@D)+RQT+89=M&ULM5C;;N,V$/T5PMB'#9!&HFSYLG ,;.PD#;!9!''3/A1]H"7:9D.1*DG9 M6: ?WZ$D2[[(M)%N7A)=9L[,G!F=D3Q<2_6JEY0:])9PH:];2V/2+YZGHR5- MB+Z2*15P9RY50@RU*CHV6!I[P1L-4[*@4VI>TB<%9UZ%$K.$"LVD0(K.KUM? M\9?[(+ .N<7OC*[UUC&RI7<(D$>_Y2@ MK2JF==P^WJ#?Y<5#,3.BZ5CR/UALEM>M?@O%=$XR;I[E^E=:%A1:O$ARG?]% MZ]+6;Z$HTT8FI3-DD#!1_"=O)1%;#FU\Q"$H'8)]A\$1AW;IT-YS "J;'3JE M0V?/(3SF$)8.X;D1NJ5#]]P:>J5#+V]6P6[>F@DQ9#14Y#W-_>& MCC!A1W%J%-QEX&=&-T0SC>02F3!, M+% J.8L8U>@7])TH1>Q0H<\3:@CC^@)]0A[22P*XB GT(IC1EW 1CG];RDQ# M##WT#-1@,_&B,M^;(M_@2+Z/1%TA/[Q$@1_X+],)^OSIH@[4@#=VXTUI>H7: M?HZ'2[R"=JJ[GY'KOAIG0"&#P3FM. M4>G!N%8S&U0S&^2!VD<"C:6(8%15,:O/3+^B/[^!#7HP--%_.2*TJPCM/$+G M:(0D 6C(/7J]1"E1:$5X!L,-PQM+SHG2**6J*.D"_8N<]-\4P7IY,+L;5B/_ MRO=]//16VY-ZGMGM>6;W)\UVF.E4S'3JJ.NLZ$7,&.@8W>6I:=6\<_ M8#C8&XH&DW9S$_#6RP8^;[R?=\;[?7W ];[ '[4P<+TQL'MEO+L3[=.=.#0Y MUHE:QK%;QZ?D?U%?*S0./XKZ6C.Q6S3?2?VXA'50/SEM-#X8; M+T _*+R&N5XG:Q4-W"KZ2-Y.&PO=V]R:W-H M965T$'1'@H8<=(> MBAYHZ1DA7'L8U>+"XSPWG#Q9S"37+M?LNVP@4>R M1AM9=61T4#'1?NEKE\,>(1R<($0=(?I?0MP18E=HZ\R5-:>&IHF26Z(L&M5L MPV7CV%@-$W87ET;A+$.>2:=4,TUD0? ,:!"&MN&*?+>O=DZSM6 %RZ@PF'LF M&V&86)-:_PRSD8RKB^0KWGY9Q<7ER1"\($>2IEHU%!)[[!DJUQ/^O*F[;E12?*6T)] M2^+@FD1!%!ZAS\[3YY A/73TX"/=QZ#[M*,^[A]#L[ZG)P_"\?\#KLO0[/9RH-Y<2<2O:: M"##'# \_QQN,1O&!X\^H\.[^2W!@V=^[X?9U_4'5F@E-.!3("VY'**/:%ZOM M&%F[2[^2!I\0URSQD0=E 3A?2&EV'?N.]'\;Z3]02P,$% @ @85D4Q3^ M P$I!0 4Q8 !D !X;"]W;W)K&ULM9A;;]LV M%,>_"F%T0 ,DEDCY6C@&DKCK JRK$2_;P[ '1CJVM4JB2M)Q"NS#[U"21;FV MZ 1+7FS=>"[_0_UXJ,E6R*]J#:#)4YIDZK*SUCK_X'DJ7$/*55?DD.&=I9 I MUW@J5Y[*)?"H&)0F'O/]@9?R..M,)\6UN9Q.Q$8G<09S2=0F3;G\?@V)V%YV M:&=WX2Y>K;6YX$TG.5_! O1]/I=XYM56HCB%3,4B(Q*6EYTK^F$6#,R XHD_ M8MBJQC$QJ3P(\=6C7&4)NLW)VF1OO9Z!YG*@S\HYX1*VY!$7BC-QGL5;GC0N_K\5&\2S"B^_V MSB>>QJB-;R^L(KPN(V0M$7[FLDO\_CEA/O/O%S/R_MV9]5[^'K%ZX[:Z@+Q+ M K^P2JVY(X9F;D,S"-$0+<-K,^1A5>K2L+HTK+ ZQ9))*$2T5RD&52 M9^1?XI3JNG0V+)P9XCQ._:[O^W3B/39+\[S'9B1+\.HN\.PKY?(31CI24WZXLCPW%M?/QF*E+?4ME_71TK>\U9.FC3D386!^K&PYHO0*Y< M*5F:T;?#&;4\HVZ@+0S)4+((((4(D2;C$"S""K!M5/02J%4>1PUIJ=]E+1BB MED/4#:)/LUOT_0R)+51H_^TDMABA V?N\6?&]>H?Z%T M>>WLJ*J#@S>_[X]:IZP%$'43Z)57M,K;";/X8V[\S?EW MW%N@)%KL5"$/N\G=$@P[)* 1I4T69B'(W!!I6IXR.A[]@UL94]*3>@4' M>HWZPY:0+&J9&[5?=$JDR]BR1 @OZP WZO88,CZYJ:KE2 MM,@.WG _W]C0N^G[\615*P/CIGC=P:C?(I^%;."&+//I<"\WU-(L!;B+O8-' MR+ ),Z_FE[SH,/!%_?B40Z:BW2(%Z_Q M <]\;OW,Y2K.%$E@B0#O+X70 MNQ/SF;#^CCS]#U!+ P04 " "!A6135@TA^/ " #Q!P &0 'AL+W=O M_^_MIM!'R624 FKRE M/%-C)]$ZOW9=%2:04M42.60X$@N94HU=N795+H%&UBGEKN]Y/3>E+',F(VM; MR,E(%)JS#!:2J")-J?PU!2XV8Z?M; WW;)UH8W GHYRN80GZ,5]([+EUE(BE MD"DF,B(A'CLW[>OIT,RW$YX8;-1.FYA*5D(\F\YM-'8\ P0<0FTB4/Q[A1EP M;@(AQDL5TZE3&L?=]C;Z)UL[UK*B"F:"?V.13L;.P"$1Q+3@^EYLOD!53V#B MA8(K^R6;:J[GD+!06J25,Q*D+"O_Z5NEPXY#IW_$P:\B,C(M%%J4(J%(5RRC5JHKLL3%CPH.1,0X M@DL0@2S'_V1J[%"P^F&5373LAK_2#5?J6P1+[@DON=[C\LY.3^[>,]> M?O>CNJA7+9I?B^;;-)U_B783OA1,,5O_]SNTD5L-J?IQ(D>GSM&Q.;I'Q+M#DN_)@NA]-6LXK$$A$8_< %X-@GXS7U#S!2?Y'H2F M?+O!_E/ X%# 7KL[; ;LU8"]DX!/E!= K M[;7:1[CZ-5?_H\+]=>H1IXFB#-?;4Z?7#8Y@#&J,P4F,!2]P?\VH2O963PM[ MK^"5&#XG@B.;.L8U.%BU=L?#7S/7L.8:GN3:;O84+S5+W%[J*Z'QB;#-!-]DD&8"CL="Z&W' MO!/U*S_Y U!+ P04 " "!A613D#)&H_@# >#@ &0 'AL+W=ODI.CD%_5#D"3 MQS3)U-39:;U_[[HJVD'*5$_L(<,O&R%3IK$KMZ[:2V!Q890FKN]Y S=E/'-F MDV)L)6<3D>N$9["21.5IRN33'!)QG#K4.0U\YMN=-@/N;+)G6[@'_66_DMAS M:Y28IY I+C(B83-U/M#WMW1D#(H9OW,XJD:;F*6LA?AJ.G?QU/$,(T@@T@:" MX=\!%I D!@EY?*M G=JG,6RV3^BWQ>)Q,6NF8"&2/WBL=U-GY) 8-BQ/]&=Q M_ 6J!84&+Q*)*G[)L9P[#!P2Y4J+M#)&!BG/RG_V6 6B8>"/.@S\RL#_T8!V M& 250?!2@WYET'^I05@9A"\U&%0&@R+V9;"*2"^99K.)%$>*%UD6&_+ (J[)KYDX)A!O@=QE48^\(Y^8E,R4 M 'F]!,UXHMZ05X1GY&$GE9[_#\T?V1/SQ6^)[/OUR MOR2O7[V!=)^()X 6L,5S8+)'O+! \RJT%I2E'>4>]CT2>!><6E!N["A+P)@% M]#DNMR_GTH[B8JKK?/MUOOT"-NB G><*1Y0BS<3_^1N.D3L-J?K+XB.H?02% MCWZ'CX7(-,^VD&D2"=2@&$SQH!\40I22BX);5WR@K8*6I9]!X<=HY&'FCX?C MB7MHQO%ZDE?/N.#?K_GWK?Q_%B(^\B1I8U1:A@UG01B$HTM*-_TK2K0_&'?0 M"FM:H956,V,2$J8AQO@JW1:Y17C%H#_T.@@,:@(#*X$'[P M/ZO)4>UC9.6^ AEA0>)A::KN($R!HH!ID( 1+*M20MPF8W9@ZGD]S_O)0G%< M4QQ;D3[EZ1JDH7?2P3,O\C>QB.-\?%65=-21;.J=3P;ON6WV!/>8S!#6IR"46M&*P]ZO4>/LVQ2___1M'GE MZ()AOY/@67.I770_LD>>YJEAUTJTE+-ZQF%GRLX*3(?_ MAA0PF6':U+.LAM<'7N=Q0\^:3>W:^D].O'F%U>1PO>_=QDW9O)SPWKCEF2() M;-#*ZPTQL+)\C)0=+?;%Y7DM-%[%B^8.'W @S03\OA%"GSKF/EX_"6?? 5!+ M P04 " "!A613<;!_*.T# "=#0 &0 'AL+W=O6%MYBYL;5:S&1E!"_8 M6B%=Y3E5+W=,R/W'/[I@"D!I"W@+ '$-: \&CX"D'G%G<)C\JKKGK@=RB1YIP M@SX5L6@_A [>/ :[H/2C=RDD9NX>&%/O+M*PXC6Z%3W/W^' M,71O6*[_&L@1-CE"EV/4D^-7*=,]%Z)+Z@,R=DAK"4^+, JCR MQ=.@F?6*UJBA-1JD]6BW>/)F;0V4&S5QHW>3-&YRQ(/E_7>S+Z5E"$L1!3T(HC) MN(? B67C00*W22*K I*7](4ZS:'[-$E4!:U@SW DT*RS W7<4T(?PGCF41!CZ7@UNKPL-<=>M'Q*NHD$9Z3B'%O^:VQ MX6%G6U#L@4K%$^B&$#*AUH8Z28S.2(3Q-"(])%H7Q-&P18']N(5@?MT^/^U.MSA=7@<]@G=KL^@1\5!88T9T-'E-;@2/!NFI+6QMP\6M-W[[#_).CL/UP^4S5CA<:";8%6' SAIZHP[? X<;(TIV.-]+ M&G67&7P_,64GP/.ME.9X8P_&ULM55=3]LP%/TK5L0# M2!OY:.D'2B-1T#0TD!"TV\.T!S>Y:2P<.]@.@7_/M1NRCK79P]27^/.<>^ZY ML1TW4CWJ L"0EY(+/?,*8ZISW]=I 275I[("@2NY5"4U.%1K7U<*:.9 )?>C M(!CY)67"2V(W=Z>26-:&,P%WBNBZ+*EZG0.7S)>[8NC)WPD[BB:W@ MLZSN%([\CB5C)0C-I" *\IEW$9[/0P=P.[XS:/16G]A45E(^VL%U-O,"JP@X MI,924&R>X1(XMTRHXZDE];J8%KC=?V?_XI+'9%94PZ7D/UAFBIDW\4@&.:VY MN9?-5V@3.K-\J>3:?4G3[@T\DM;:R+(%HX*2B4U+7UHCM@#1/D#4 B*G>Q/( MJ;RBAB:QD@U1=C>RV8Y+U:%1'!.V*@]&X2I#G$DNTJ>::>8)1UWB MD6,=[&&=UQIGM";;#OR\P3ER;:#4OWIB#+H8 Q=CN"?&0AK*".TA^HY":-I.(C]YQU2AIV48:^42_LTCTYGG7$ M9P?S<=3%&!W Q]'?/H;CP7BWC^-.RKA7RE)#7G-RPW+8%;,?'$;D%:CJLWW2 MZ9CT6Z(HVD%+Z.&:=ES3@Y4P#'Y?-,$!BMB2?JCB:'<1PZU;+_R?,OX#/=Q? M1G_K*K;/VBU5:R8TX9 C57 ZQM.D-B_%9F!DY6[GE31X0%VWP-<5E-V Z[F4 MYGU@+_SNO4[> %!+ P04 " "!A613K\:#;JL" "F!@ &0 'AL+W=O MU!M)A8J2ZXD)]W?3Y(=-TV<8"^V1/$<'E(T':V%?%49HH;WG'$U M\C*MBQO?5TF&.5$=42 W)PLA)BY-UV;R9#Z^\A'BUF[MTY 56$#),M&4@YK7""3)FB8R, MMYK3:T):X/9ZP_[5Y6YR>2$*)X+]HJG.1MZ5!RDN2,GTHUA_PSJ?@>5+!%/N M">O:-_ @*946>0TV"G+*JS=YK^NP!3 \[8"P!H2[@/X!0*\&]%RBE3*7UI1H M$D=2K$%:;\-F%ZXV#FVRH=S>XEQ+WR5M)%74E%0MX(@G5<,_%FF&Z M1+CC20)1PCD4'>L$YA$'8;=$S^7]X<$1.K[F ;E\I8E(+M6_K] MW=C@3F.N_AR)T6]B]%V,_H$8C[A"7F);\2O@T 'M-%C%W4%X>3F(_-5V3?;= MKL/^,&R\/LD:-+(&1V7], .,"=7:%(.]@!=A+^COR&KQNNH.ANVRAHVLX5%9 M4\I*C:F3!@7*JJ?AU/1QJ=(/RUF;[HKZ:EM1T-G3W>K5O=[1[6]]\CG*I9N$ M"A)1V-MANVMFS$[]K$9PM7,_*"I)O@#D4O*%3!<&,J@1':C"FWS,R/!*5U,.<+(?1F8P,TOZ;X'U!+ P04 " "!A613-1 $ MAEX% !''P &0 'AL+W=OK;D"=.?Y(JG]I>Y M5 DS]E8M KU2G$6%4Q('* S[0<)$VIN,BV>W:C*6F8E%RF\5T%F2,/7\A<=R M?=&#O9<'W\5B:?('P62\8@M^Q\W]ZE;9NZ"*$HF$IUK(%"@^O^A]AN=32G.' MPN(/P=>Z=@WRKCQ(^2._^19=],(\(Q[SFF^53&?XK(+"]ZPQZ(^)QEL?DNU[_Q38>*!&V M?6L\R[21R<;99I"(M/QF3QLA:@XV3KL#VCB@70>RQP%O''#1T3*SHEN7S+#) M6,DU4+FUC99?%-H4WK8W(LV'\ 9&"WYU_*]M"> M]D;@1J9FJ<%5&O%HVS^PN5<=0"\=^(*\ >_XZA/ X1E (8(M^4S][I=\9MUA MX1YZTL&5GKB(ASOT/ .W,4O-MJS@[VMK#KX9GNA_/(V1JC%2-$8.&3R^-7AM M(U,&ZQ?!\NG].*%X1,?!8UVNIA$):T9;>=(J3WI0GJVBG(&KIUF<12)=@"E; M"<-B\8M'X$[.S9HI#J92&^U1JU]ET7_[H1E4C0U>-30+)77KM"G#T9KN$(X0 MWAF=IM60X+!]=(95JD-OJM=3;+DBQFQDH?<;LDS 0K06L[P!*IC/A5 M/&A+?MA(Z^-@,!KN)-]B1?L(M6<_JK(?'7,.C!HY$(AVYT#3" W#47N>,'2D M#;V93F6RR@Q7>CM5S\L&:Q2';_]N0^2:0\=]NS?QZE@9(0)W=-]8U87O$S+8 M([Q#,L2O$1[\"VY$*I(L\6GB6 S)"8; (17ZF7JEC4B*V7JO^3R+P;68<_#^ M6PK^XDSI#ZVCX ^)P'/NZDO/L1;V7ZLY>^K2W$$6#DZ@N0,E])/R59K[0])N MS1T)H1^%-VRVM(]4.2U99O\[R@<1,JOO3(XZ*$30 \Y MZ*'#_D@>KCIMJ Y#B'9EIRWK#MXCNT,@\B.P7?:#5AWD"(A.0$#D"(B.3\". MD+A[5CH"(C\!]TO>N>A@!T)\ A!B!T)\?!!VA!QT2HX="+$?A"_;-%^PVN;Y M!+MG[.B%_?OG5TGK#]F]QF!'.WQDVN$F[2CVPPPYVV ^[:\XT M7\HX B)9*?G(\U2],CC$X1,@#CO$83^/_K_JPZ;JJ+^K>G/SBW!_C^J.=]C/ MNW;5#UIBB.,=.0'OB.,=.3[O.D)V+S'$\8[X>;=?\LXEAC@.DE-4$6MEQ.-S ML",D[-Y,$@="X@=AO2RH7\J"$7_DL2P5F764"(GC&#E!D9 XMI$CEPDW\;;J MLWA$=HNXS3HAIGC/1H(X-)(WKQ22EB(@AJC1@18SA,B>.C1QP"1'K19NHFUM M'] @W$VVS6JXIVQ%'7=I1[WPH+?^(-A31U]Z@D(B=32E?IJ^ACP=(;O!0QV' M:4?E\. AZ(0_=32F)]A3T]K9S/$+B1TA/>MM4#NJ3+A:%">XVNJ8I:8\M:R> M5J?$GXNST<"9ET?,-TPM1*I!S.?6-?PTL$FI\M2VO#%R51Q\/DAC9%)<+CF+ MN,H-[.]S*&ULO9A;3^,X&(;_BE7-!4@#B9WT MA-I*'&:T2+!"P["CT6HO3/*UM2:QN[9#F='^^'6<$I<37NS+5>G 6!2N:04W4J%L#-G:F0.=7F5,X"M9! 4UN4 M9P$)PUZ04\8[DY&]=B4[ESPO(Q'+]A<8JB\",B(<$-?B[]Y5>0F')LRT./G:B.,K)ZT0Z]SXPS#2WN.XMMKW%;W]P,RE4XW.IE'I6J5S73Q."PT%_%#RM MI[7=:H#[<=WHE M;\T4RXO<,WT&M=+@ )-U6/-_4# M,G3#IH".KCGZ#E2JXZ:4 M_8H$_2PK/=YPZ! 8^E.ESRVIXC6._D/M_, .1;A_B/@=L/!@_S/=+SEHG^B.<-@/I-V9M]*%.%*1\ "9 M$T>>8OD&^A"'/V('U5?)4V!TQQ\:HY5Y! ?<,0!C.SO$XYL?YW%O7YO M@R>K5NL\B;IAV,P3XLA'_.2K8WX30HCC%.D=(G"'+.+_?'K7=/9+QNVSV1&. M^''T*N9V:C@TD>$!8HX&PO=V]R:W-H965T*Z&U94O5Z"USN9M[0>[MP MSS:%L1?\=%K1#2S!/%9W"G=^FR5G)0C-I" *UC/O9G@]3VR\"_C)8*<[:V([ M64GY9#=?\YD76"#@D!F;@>+?,\R!L9<5U3"7 M_!?+33'S)A[)84VWW-S+W1=H^HEMODQR[7[)KHD-/))MM9%E(T:"DHGZG[XT M/G0$P]$10=@(PO\51(T@G[64-W65.$1JB54 Q(%ER0,PF&/?'Y:OH , MY4,G#S[*??2G-2EL30I=ONBD2=_>F[XD\\:)WSF*B]Y@/;*.6;722K?:@<_!] M;'6*N%,W#)+)'MQA4!Q.^N'B%BX^;9P4AHF-/9!,XH3)05$W)2KZ2E<<^ECC M XS159CLL1X&#:]&XW[8I(5-3L(^2$/Y\1>JCS4Y/,_Q.-YC/0R*T/T]5K\S M*NR8_D[5A@E-.*Q1%@S&V*NJ1U^],;)RTV,E#3Z;;EG@UP*4#<#[:RG-V\8. MI/;[D_X#4$L#!!0 ( (&%9%,4UVI0-P, #4+ 9 >&PO=V]R:W-H M965TL@..3A9 9U;B52U>M)-#8@K+4#3RO[V:4<670"K68\=WG@ZNV#+1YL"=C%9T"=>@;U>7$G=NY25F&7#% M!"<2%F/GV#\Z]?L&8"U^,EBKVIJ85.9"W)G-63QV/!,1I!!IXX+BWP-,(4V- M)XSCOG3J5)P&6%\_>?]BD\=DYE3!5*2_6*R3L7/HD!@6-$_UE5A_A3*AGO$7 MB5397[(N; >A0Z)<:9&58(P@8[SXIYM2B!H _>P&!"4@> EH8@A+0/@2T&T M=$M ]ZV 7@FPJ;M%[E:X&=5T,I)B3:2Q1F]F8=6W:-2+<5,HUUKB4X8X/?FA M$Y!()"5P35)&YRQEFH$BG\EW*B4U]TCV9Z I2]4!GMY>S\C^W@'9(XR3FT3D MBO)8C5R-T1B?;E0RGQ3,00-S2"X$UXDBISR&^#G>Q2RJ5(*G5$Z"5H?7L.J0 MT/M$ B_P=\0S;8=?T$<2#!O1LW;T#*(.\;L6[NV G[X]=J]%B["ZUM#Z"UNO M];QVG;_/T82<:(5@IV5DG!T[<\IJT]3(+A8#AR'^KJO3;R*HMG\?>J^'NM\1<" M3;EB2&E9OA^ZCD>]O>YGU,DB]\^,0OE*TVRCH MMBOY[6WIQ@P>$?G&Q3J%&*-"43MM66[[A=][)R&W;4TA=\YU,4%4I]5,>&PG(7=K7@R4%U0N&5&ULM59=;]HP M%/TK5M1)K=22;PH5(!7"M&JK5)5V>YCV8)(;8C6Q,]L4]N]G.R&#DJ;5IKV M[=QSCL_UC6]&&\:?1 8@T;;(J1A;F93EE6V+.(,"BQXK@:HG*>,%EFK*5[8H M.>#$@(K<]ARG;Q>84&LR,FMW?#)B:YD3"G<&&DG2\:> M].0F&5N.WA#D$$O-@-7?,\P@SS61VL;/FM-J)#5P?[QC_VB\*R]++&#&\F\D MD=G8&E@H@12O#5 .\E('@%X-< _[T*00T(WJL0U@!CW:Z\F\1%6.+)B+,-XCI:L>F! MR;Y!JWP1JNMD(;EZ2A1.3FYHS I $F]!H-,()":Y.$,7Z'$1H=.3,W2""$4/ M&5L+3!,QLJ42U5 [K@6FE8#WBH"/;AF5F4!SFD#2@H^Z\<,.O*W,-HZ]G>.I MUTFX@+*'?.<<>8[GMNQG]GZXTV;GW]3G?ZU^D R_.7[?\/G=Q_^ MVB^Q:J^ ML'E]OW]1<>A&0B%^=*@$C4I@5((WBPS!5MUP M#I$BBD1)ZU553%UC=L^J)[ MGGA]WQ_9S_O'=!QT,1P>QD3',4$_# ^#YBU$?C@,FJ@#RV%C.>RT/$]3,'>@ M< MYT$&^TT&^YU$CY1(2-!G0E<)*SH(+QO"R_]8ZX-&9="Y[8B(F(,\J/:V] ^. MJBYTG!K3<^^-JWJQ?K4O9JY+>N1ZO%52_Y# M7WT@W&*^(E2@'%(EY?0NU:GSJNE6$\E*TU663*H>98:9^DX!K@/4\Y0QN9MH M@>;+9_(;4$L#!!0 ( (&%9%-HTX5L4 < )PJ 9 >&PO=V]R:W-H M965T\BRW%Y MO+!S>IQGQVPE?"^D]QQ$JR @_.<9]=GFI ,[VPM?O,>%B"_T3H^7Y)%. MJ/BZO.?R72_3,O,"&D8>"P&G\Y/.!_C^SK5B@63%GQ[=1+G7(';E@;'O\9OQ M[*1CQ8BH3Z"V%>@K@?ZN#W4" M R4P:.OT4 D,=R'!NL!9V\A9;4'!+-B[T:YU'&[##4OQ=NI$M@&'I8C76MF& M'"8Q[Z7IF^3^B AR>LS9!O!XO=07OT@.4"(O4]X+X[,^$5Q^ZDDY<3H1;/I] MP?P9Y=%O@/Y8>>(G>#NB@GA^].ZX)Z2->&5OJO2=I?I0C;[KE=\%:' $D(7@ MU\D(O'WS[@WH@6A!.(W2OQ5:S]MH=0M::W6-6NBRW'T17IBUWA(N$0Y3K;5* M+ELHL5"#DH\-_I%0(K$:E%R9E8SHM MLF"BQ6NS.V*QN0I=2G;7OGE^WUVHI MK15:/IFU?%@]:FPM0-VTB2%NV/[;]DIRVU^AZ*YU'.'0[%Q/,D=&'RBC#Y3H MMY]%'^"O&[D>C 4-HK\-UNS,FIU8]T#K4PBM].>XM\YG :'9@0 MGP(VWWJPY-Z4@B7E*>@$_HSY/N&1OOH._ >,!W"4VASD$@S7Q5\_%>)4:Z^5I6@5+V;@^4,H(-+I_NZO+#F5 \SZ$,C M](LMV#2EGA>D\;"<2+"+JY%!2_=WEA';Q]'8P+PPUR?" S ]U(4%HH9TH'/* MN>3%Y!"H?3O:@W#NE(4"C9M('.HZ!,V%* =.P7KI$;U3%EMD)=3%!IJKS M'H$I"]QQ?*/0=,@9"$FM$ MTNF+^5"-E,UB;^2:3I5F46BFT=K=![^#20KY,JX-]_)E*$S=JV9'9!T@)$BS M*(*'#XFR6>BLL"$B*-?=FTEX!ZZDC\B36T5$.NF;4F\MT;(BVNKR/%*F\@37 M']@FF)J.D9F.VR;.A/I^?#6YIJ)N"JLF6N0<(HTTGR(SG_Z:-*KHNZ$I/II6 MT5Z-]\O2R&U;)Y$F9F3NMB\(#V5?H7+%%"'-O6APB(S0W(G,W#DI!#Y:/?Q# MIP((!JCR;AD.=/DG<&2R4L?5I* MO!*Y1+RFD3@"8B&OQQL8)T72[0G*@ZJ^N<$HLL",_#1%U=;T;9OI>R\'%&S9 MUWAL5@G<;,QN!JZ)W#83^441;8RP<>)P89?[9\UJW;N>_Z6+'.'L8_ MQ757%>OJ4B\W.3*7B.(1EZ6"FO95$[]]".*W-?';38UTVP1L".[8+K/]3C"* M$#79VV:RW^>,T%>Y<;;+)0&B&C=T3;#WJ0G@CPTS!5#7!?L0=<'6=<$VUX57 M3)AR67!,$U%=%9S7JPJODS *4&'48M>-6AQ='1PS8>^FC*Q@)I9Q-'L[AYBR M.YHLG:8Y^VLEC5.>I.^4D"+$W!R]:9!^\*1QRBQ3ES*:SQTSGZO[E6_I:-,4 M/,V_CGN(9-%$Z9B)\MMV++O=YJ:^XDPIS"<%ZN-RPW!>L1 :.4?3L/-KA\UG M3GF(;,-^1==S7K$2ND8O-+D[9G+/MK[]4/3,*=,X&E0] ZM86 ,8:ZK'9JK_ M0FR0_QE739..3=JS9$3>UOL]] MUGZ#R]R'K8$!E:LIT&WJ=E_T%'VLU.\\':^"ULM]*RS^WN8MX8]>& &?SJ6H MU>U+'3S]*F3Z1K!E\D6Q!R8$"Y*7"TID)L4+Y.=SQL3V3?S=L^P+J:?_ U!+ M P04 " "!A613A;^_PD % "@%@ &0 'AL+W=OI V;8S.XO*=O=AM0\F,1 U MB5G;0+O:'[]V8I(0'!/-:J5Y:1-SS[WG^GXY'ATH>^4;0@1XBZ.$W[8V0FP_ M=3K0''CI&2A7EI2^JI?'X+;E*$8D(KY0*K#\MR<3 M$D5*D^3QEU;:RFTJ8/GYJ'V6.B^=66).)C3Z/0S$YK8U:(& K/ N$L_T\$"T M0Z[2Y].(IW_!0#ON*"Q!DL&<9AD__&;WH@2 /9J $@#4%- 5P.Z30$] M#>@U!;@:X%8 R*T!]#6@W]2"IP%>4\! P9- 4,-%0.<8.:,'@!3\E*?>DCS-,7+S H355(+P>2OH<2)\4)0__6C2LH ^#26 ME\F^%.3N/=KX5\:DX?#4WA'EDU>.RBO'93JZ];MIZ/$;9^3JAO=?'. M]^410W96:6A/N B3=1LDNWA)6"E(5[)G9H_7IHZ9F7!+.X_ZCF/>>R\GYC4F MYE,N3':]LX@CM\[N(+<[L-I=E),UW1))X(+_@S/_H5?'8YCS&-IY9#M_))+0 MI!F7X3F7.BK0*0:U8R5SK\L9;%GH$Y"FZ@V01V*9)5$8AR)E%= HPHR#K5Q- M&9H(SK2I08EAM^W"&HJELP3\#HJ[[?9[*$(3Q5X-Q:)E0V2E^(N.I>QT*Q)> MCN5,ZRL'TZN+9=&GH;U1YQM5[4:>,G7:N^1(O! ETKZ6_5GJUYXV5$+D;6 M/8]'N9%JXA>D3HD7 PA>F$![V>77)-]G7<#UCC2JX8FV6EO#VJ<+4J<^%;,+ MVH?7L=+I3G AOS/D5+T8 ^]\=_M.MUI>YU(]-(35^C)(N2ZJ^M[$XH-)5[^: M&X\&*3BH-HMBTDQUZ%]L!MBTBV, M)\#GHFZG%()Y%-)%OMBAR,@"(N-S<6NS /O1)4. M K%4MI$/71#@=V[[("D."A:@I#%F*H_-/)W26 MX!>$3HD7LQ9=F+6$A32;F-H#Q=*X<79%,$UM .$QM7NUF=TI75FINUOY:;^6 M30!$9"55.VU/!H=EUZ'9BZ#;]!9K286@4BN.+NAC++Z7' M_P)02P,$% @ @85D4Q;*TI-Q P S@P !D !X;"]W;W)K&ULI5?;;N,V$/T50D^[P":Z7[RP#32Q';= T6#=RS,CC2TA MDJB2M)W]^PYI17 D6JM%7RQ2.F?F<&8XI.=GQE]%#B#)6U768F'E4C9?;5ND M.514W+,&:ORR9[RB$J?\8(N& \TTJ2IMSW$BNZ)%;2WG^MTS7\[9499%#<^< MB&-54?[] 4IV7EBN]?[B6W'(I7IA+^<-/< .Y%_-,\>9W5G)B@IJ4;":<-@O MK%_(2R5(90QK^M M3:MSJ8C7XW?K&[UV7,L+%?#(RG^*3.8+*[%(!GMZ+.4W=MY"NYY0V4M9*?0O M.;=8QR+I44A6M6144!7UY4G?VCA<$=S@!L%K"=Y4@M\2_*F$H"4$4PEA2PBG M$J*6$$TEQ"TAGDI(6D*BLWM)A\[EBDJZG'-V)ERAT9H:Z(+0;$QA4:O2W4F. M7PODR>5.LO3U3F4_(RFK<$<(JHOJCNQPFV3'$@C;XZ?Z!%S7*\YD#N0$0B*' MUADYUNV$-8HJR*<52%J4XC-:\1PW(=H+>2ZILBMRRD&\/XJ:_)FSHT!#8FY+ M7)(29J>M_(>+?.^&_-\IOR=.] 7=>(Z!_CA.WT%S3WQ'TUT#?35._^U8C]+7 M$\3[[DWZ9CK=M/:G_[?V[3A]!>DM[S;68%>(7E>(GK;GWY*CRV'$D-\9\K6A MX(:A/]HBQ#XM)%9541^^D!)<2_&RJFXN/4/M0[?^T M#+P9ANET71T&4!AZ'T%K RARG(^@S1#DQ7[P$?0TQ=+6!(J3#O0AI$$7TF T MI(\4&TRF(OJ#L&V"@?>[Q)N9O8>=]W#4.YY1>RCD474+FZ0J>V6)5N0/ MT;!6?#YN;.E9%YG9SW=)T,^I^9J-=YI+.(<@/W)Z M6VMEL#1HMFL#:-!L-T.0F_2S]S1%T]:T.J>_3^VKBY>ZZ>.1C.>,("7LD>;< MQ\CGE]OS92)9H^]B+TSBS4X/<_S# 5P!\/N>,?D^4=>[[B_,\C]02P,$% M @ @85D4_6Z0^?M @ D@D !D !X;"]W;W)K&ULS59=;]HP%/TK5IY::25?A-(*D/CHM$IKAXJV/4Q[,,F%6$UL:M^4LE\_ MVPEIMD(Z:7TH#\0?]QR?>ZX3>[ 5\EZE $B>\HRKH9,B;BY=5\4IY%1UQ :X MGED)F5/47;EVU48"32PHS]S \WIN3AEW1@,[-I>C@2@P8QSFDJ@BSZG<32 3 MVZ'C._N!.[9.T0RXH\&&KF$!^'4SE[KGUBP)RX$K)CB1L!HZ8_]RYEN C?C& M8*L:;6)260IQ;SK7R=#QC"+(($9#0?7C$::0989)ZWBH2)UZ30-LMO?L'VWR M.IDE53 5V7>68#IT^@Y)8$6+#._$]A-4"46&+Q:9LO]D6\5Z#HD+A2*OP%I! MSGCYI$^5$0V YCD,""I \*^ L *$?P.Z1P#="M"USI2I6!]F%.EH(,662!.M MV4S#FFG1.GW&3=T7*/4LTS@<+5#$]V?&N83$(M?;25%;D#,2>(%'KAX*ACMR MS6/@ID)DGE$S>4NEI';@9 9(6:9.7X.HE$I0 Q>U;+.X&U<2)Z7$X(C$D-P( MCJDB5SR!Y !^VHZ_:,&[VJ[:LV#OV21H)5S ID-"[X-)US^DY__@LW;X#94= MXD46[K5D$]8[(+1\X3$YIBS5#I@V=\!85YBO0;_D2)8[THR;TYT='F^I3,B/ MSYJ27"/DZF>+H&XMJ&L%=8\(NBWR)4@B5M6.(;3 5$CV2R]\PG@U>GK(N9(X MLL3FB_!G\4OBS-R[ H M.KX_+FJM%ZU:[T"A9+&1J6Q="LZPK2J^]_Q]]MY'7?S&D>&_964JMJ;GW0.6 MNXU#+ >YMIL;:;ZT@32!.CYE1"X[Y@%ZFO8Z#=02P,$% @ @85D M4YY^'UR- P Y T !D !X;"]W;W)K&ULM5== M;YLP%/TK%D^MU 8,Y&M*(JU-IVW2MJC9Q[,#3K *-K--TTG[\;LV%+(%:-IJ M+V ;G\/QO9=C,]L+>:<22C5ZR%*NYDZB=?[&=564T(RH@<@IAR=;(3.BH2MW MKLHE);$%9:GK>][(S0CCSF)FQU9R,1.%3AFG*XE4D65$_KJBJ=C/'>P\#MRR M7:+-@+N8Y61'UU1_RU<2>F[-$K.,W701F8I M&R'N3.=#/'<\HXBF--*&@L#MGE[3-#5,H.-G1>K4[S3 P_8C^SN[>%C,ABAZ M+=(?+-;)W)DX**9;4J3Z5NS?TVI!0\,7B539*]I7R3-;& S M#1M]BX9X,6X*9:TE/&6 TXNU%M'=I0EUC"*10?TI8C-XB=90E'&14B2VB.R) MC!4B]X2E9 -C4*)H)PG7Z&Q)-8RJRJ5.9W*/M8\ '"HPOD>SYN@5_WPS\1.4">WPE?]L/7-!^@P.N$W[P8[D*& MZC3Y=9I\RQ=V\-U2I26+-&1)F8RA@C.M>HB#FCBPQ$&74)NJ'J*P)@I[%7X6 M_%+DY<=?%HLM#Q!\!G505L1Y6R!+VJ&E-;9VO[@,QS/WOD7+L-8R[-6RHM): M*(_HB>$:UL]!I33Y]7<2PUUB5UZOS[;'[7* -W3'.&=_!?I':C#]1;]5+#B,X MG4QP>PCQ@8_B7G%?;#)/KOJ*[:\\#L-1AXK&)G"_3U0J+M#M^AM"I:7^OH/$[W&]X MW5\P^HV>O7?@Q@WQ*^T0-WZ(^PWQ>=_/$K?X8-CA@[@Q0MSOA"_>Q"K>DW8Q MW%@GGKX\K<_?Y/S&:7WO=7GU&U_T^WWQI2&]]ML(/4$L#!!0 ( (&%9%-5VBB!HP0 )H2 9 >&PO=V]R:W-H M965TF4D#!,A+(E*<@4),YIE0UQ0*Y>3,5,J7:#.4L4 N)-'9&:1*0,.P&*66\,1RX MN9$<#L12)XSC2():IBF5FTM,Q/J\$36V$]_8;*[M1# <+.@,QZCO%R-I1D&! M$K,4N6*"@\3I>>,B^GQ%NM; K?C!<*TJSV!=>1#BT0YNX_-&:!EA@A-M(:CY MM\(K3!*+9'@\Y:"-8D]K6'W>HO_JG#?./%"%5R+YD\5Z?MXX:T",4[I,]#>Q M_AUSASH6;R(2Y?[".E\;-F"R5%JDN;%AD#*>_:?/>2 J!J1WP(#D!F3/H'7( MH)4;M)RC&3/GUC75=#B08@W2KC9H]L'%QED;;QBW:1QK:=XR8Z>'8RTFCZ0G.[YC26+1!H$VW"V#8)+SO,QXD@,\6W GN)XKN.$QQC7V M5W[[OL<^,#$K D>V@;LD7L Q+IK0"D^ A"2Z'U_#T:?CS/$ZH. MY5:1ZY;;IGU@&X,>PLW3DND-W/().N0#Y9E7DA7U4*Z M,%7#9VB.OH:'#537C>C&35^LJ8SAKS\,)-QJ3-7?'D*=@E#'Z^VV<&=F>VTV M.S+UEX7R&/Z%PZG*4#L.U8K@:MAI=P?!JH9*MZ#2]5+Y+C1-P(BHTN8P,#[; M'I$*I[HCD:%V*U1(020CZUNQ0[574.V]*FH5LB?FY&K)C')/8$63)=91[?T4 MM59OCZMWR0[9LX+LF9?L/9H]2+;^ZQ2U-%9\X#(164'B-IOK1A#Z4W=)RK5/NI\D'(J53_RR_X;.]!E M#KNCE"3<$Z::19U.>""%I?I'?OF_>48Y80I!HTQKN?GMHS#3)%_\2G6/_/*^ MC=\*E0V?Z48[/?2U#3W?I1JI=O]0I$H-C_SBNY?J3Z)WT0CS\JLYG;:X@$Y-=8*>8Q9\%P'?%WVI M_X1\# TA91\@_C[PP]2^+7:3.1L.\\NZ-EDO?/AW7NA+I-1X\CX:;UZ.EP\* MGY8V6'HN$4_=1XLYUMPLDHK*C8]AV0C(!VD$I&P$Q-\(7IE$/TBW23JU.0PJ MO_Y3E#-W*:*,""RYSBX"BMGBXN7"73<$Y?+LUN:.RIGYT(<$I\8T;/9,J&5V M$9(-M%BXNX0'H;5(W>,<:8S2+C#OIT+H[&PO=V]R:W-H965TK8F7V!\NUW=B!C M$F1[26SG[G^_N]CGT=K8%Y[61D*E)2XZ,%5Q6%L)LI*K,>1[UHM_ D MESGYA7@R*L429TA?RT?+L[A1R62!VDFCP>)B'%WWKJ9#;Q\,ODE MC7GQD_ML'"4>"!7.R2L(?JWP!I7R0HSQ:ZL9-2&]X_YXI_X^Y,ZY/ N'-T9] MEQGEXV@8088+42EZ,NN/N,WGW.O-C7+A">NM;1+!O')DBJTS$Q12UV_QNJW# MGD/:/^*0;AW2P%T'"I2W@L1D9,T:K+=F-3\(J09OAI/:_Y096?XJV8\F,S+S MEX[/*X.Y*?A?.Q'*U8$9;X"L4@AF >A(<@G8:&F%)JB+[EG-:BUL!C\^L23<$Q;N9PM0OP'J!Z#^ M$:!;N9(9Z@PV$E5VJ/;M_DDW2=ZV<)PW'.>M.G>O)9]%SG9E%%=$2=H<@FD7 MZ?^+9M#0#%J%GJ1[Z2PL(DA-R+^>P/(./T34+I1TAQ=M0!<-T,7_E8=I"H:" M#0I[\*BTZPQJ1^A!X8\,7$(F-FT;>]@ #EN%/X2CGW&18"&DA9505>@.W#@X M%+APQ$^8/#-*>802;7VN3@^E44<;AFC^\EA->L/N8!2O]AGCO=Y6H%V&#NXX M9*6I;G/-:G-)7->]\8]Y?<,\"+N4VH'"!;LFW0O>:;;NVO6$3!DZY;,A[KMA MF/-%A]8;\/>%,;2;^ #-U3GY#5!+ P04 " "!A613(4O7_G,# !W# M&0 'AL+W=O@FU\G[_[SG1,W M)Y0YR[E=6XOEG.]51AFL!9+[/"?B^1HR?E@XV#DN?*>[5)D%=SDOR XVH'X6 M:Z%G;HV2T!R8I)PA =N%\Q%?K?#$&-@=OR@<9&.,C"MWG-^;R9=DX7B&$600 M*P-!].,15I!E!DGS>*A G?I,8]@<']$_6>>U,W=$PHIGOVFBTH43.2B!+=EG MZCL_?(;*H=#@Q3R3]A\=JKV>@^*]5#ROC#6#G++R29XJ(1H&?MAAX%<&_E"# MH#((K*,E,^O6#5%D.1?\@(39K=',P&ICK;4WE)DP;I30;ZFV4\N-XO']I1$B M03'/]>V0Q.I[B3;ZRB3[#!#?(EZ<1*?J&;V_ 45H)B_T/M_S/73[L#?K7U@, MS 0&K3-B0-XA%\F4")#'!V7H1\KWDK!$SEVE?3!,W+CB>UWR]3OXSM!7SE0J MT2U+(&FQ7_7;8[\'P-7BU0KZ1P6O_5[$#10C%'@?C ZXC5"_^0W$VAQ;):1O6B+9GE&:,\P)>5QB6=C?^X^MC +:V;A(&8[09C2]_8%"N$9A7 \ M:6APS3FL1T$ E=R[= !P@Q/2<1C,-V$E%- M(OK_6P+V.?2*1&>T?&^,:UIE$IUOZKY'LYK[K#=5UH+&T),IV#L54>^M"BH.7I%G PD&;00GTPY.I]J,AQ3G%[-N(,GQV67# M>.1%_Z1@R[:A=_)4V7'8FY(_0.1]&7DJT'A8A6XH9!5Y!JU'NPK]@%%IBK"' M\K*!F*"$/+>U,*L7H&85E']$PK,6J-)QM]':Y2!VMN.5NE7;,U5V>?5JW55_ MM+VD>]I>MN1?B= %2:(,MMK4&TUU*$39Y983Q0O;*-YQI=M..TSUEP$(LT&_ MWW*NCA-S0/VML?P#4$L#!!0 ( (&%9%/O(K)Z2@, ,H) 9 >&PO M=V]R:W-H965T,4MH'$ MZ6(#- LC;K:'8@^T-):(4*1+4G&\Z(_?(26K:F&K66 />['Y,?/RF:&&Y&2K M]+,I$"V\ED*::5!8NWD?AB8ML&1FH#8H:6:M=,DL=74>FHU&EGFG4H1)%(W" MDG$9S"9^;*%G$U59P24N-)BJ+)G>W:)0VVD0!_N!1YX7U@V$L\F&Y;A$^[19 M:.J%K4K&2Y2&*PD:U]/@)GX_C[V#M_B3X]9TVN!"62GU[#KWV32('!$*3*V3 M8/3W@G,4PBD1Q]=&-&C7=([=]E[]-Q\\!;-B!N=*?.:9+:;!.( ,UZP2]E%M M?\H(L6Z,(#71P!6J#F*@,ZC>A(2%5.'QCA',I7OTX".V3: M0!Q#6>]J? T9VYD>QLN6\;)7NU,&QI=!Y]))_8:XVA1.9RHE:"Y_6.?8.30PRU7AQU())!?)@B MCKZ?V%$OQY-L:N7OG\]L?'5M/*=&*JH:X?$88R64E;7YSM:/M0N?'7 M<_C=O'[E/#"=<\JNP#6Y1H,K^MYT_7"H.U9M_-V[4I9N&PO=V]R M:W-H965TFIDD8'SA#&8F3GH]9)JQ M>SS+L!A-0*+2$B?_OBN!J5L?R0NZ]CMV$4N\5?K)% #(7JI2FKE7(-8WOF_2 M BINKE4-DDYRI2N.M-0;W]0:>.9 5>F'03#Q*RZDE\1N[U$GL6JP%!(>-3-- M57']NH!2;>?>P-MM+,6F0+OA)W'--[ "_%$_:EKY/4LF*I!&*,DTY'/O=G"S MB&R\"_@I8&OVYLQFLE;JR2Z^9G,OL(:@A!0M Z?A&>Z@+"T1V?C=<7J]I 7N MSW?LGUSNE,N:&[A3Y2^183'W(H]ED/.FQ*7:?H$NG['E2U5IW)-MN]C 8VEC M4%4=F!Q40K8C?^GJL <(3P'"#A ZWZV0Q5ENF;32QV8E+U:')G)#V MI:Q0TZD@'"8K5.G3EI\S[],-=^HOP+.$*ZFLV#"Y9&(2#UN(9UF%?U*%C'9YB M?8MHU!.-'-'H!-&W!@U2J83<7+(U;(24-*5K6'*9 OM U6Q-7QRK9T?CLXX^:R[MJWU#>GP@/9H>%Y[TPI.SPDOZD-TM?4-Y MZ1P5ZXWJDH6[02&P;2;_;M^';MOO\#6][^ /7=$<-*R$G:' ])6G= M]L5V@:IVO6BMD#J;FQ;T*P%M ^@\5PIW"RO0_YR2/U!+ P04 " "!A613 M1"6NB+,# #X#0 &0 'AL+W=OU$DOB0 *L *D+;:^GZPDMU[V'U3Z88,!J8F=MIY33_?@;.VD( M(J1L=Q_V!>QDOL_?9&8\]G KY*/:4*K1?V'JCS0-W/$S)FLZI?DAG$F9NR;)D">6*"8XD78V<*_SA%@<&8"T^ M,[I5E3$RKBR$>#23N^7(\8PB&M-(&PH"?T]T0N/8,(&.;P6I4ZYI@-7Q"_N- M=1Z<61!%)R+^ARWU9N3T';2D*Y+%^I/8_DX+AZS 2,3*_J)M8>LY*,J4%DD! M!@4)X_D_>2X^1 6 NR< ?@'PSP5T"D#G7$"W '3/!00%(#@7$!: \%Q KP#T M;+#RKVM#,R6:C(=2;)$TUL!F!C:^%@T18=RDXEQ+>,L I\=S+:+']R:82Q2) M!#)<$9LC[]&,2IOJ/*+(FJ$'SK2"-W\1*8E)(70QI9JP6%W"TX?Y%%V\NT1J M0R15B''T]T9DBO"E:J%W!_.AJT&[4>!&A747LJ5,&;],&=_R=4[Q MF?@6*3.IILP59 5?4]BH-%KL4-5N1G;V\=66R"7Z\B=0HCM-$_6U05"G%-2Q M@KIG"#K(8?ILQK0NWCEC:!G-=OTT'F#<&;I/U:@>&P78#P^-;HZ-?-P-!H=6 MM\=6N!/TNZ75@>/=TO%NH^/5"E6V0C-3H0V?-"B9@U\CQF$I*&QT]1:6U;#( M!6PC^09S6;>)Y"1!-1A>_3?NE0OW&A>^5II!QX.E4[*#7HY2*B-P$_IT75XU MD_D]O^UYO]5M 6\ 'OC3+_WI_^QBN>G7)"_V3GS802EDT"CD@4L:B35G_YY0 MTH)!%&=+QM=(I.9-7=^8#HXKN5?1EGOPBM&! ]C;]T[O+?6'_K-;+;K^EC&] M0W?>)]4\#^3RC02<%2K=#@*%IU1F%X(EK[+H&; MV\0]>69)EA1UW&HNY,DK9!W/>Z4@\7X7Q\W;^&<*>PPD^5Y0"T[Y3Y1G%*V! M36]JSPS-I,&K^O:] ??K2\27$NVR&S6P25FS7BMR&;FTR+=RI'6W(GN[1(* MQ70%3%Z[!\0ROV;D$RU2>\I=" UG9CODC9$MH# !H#P &0 'AL+W=OCMP#"2VVRZP"P3KIGLH>F"LL25$ M(E62CI/^^I*4(LN2K W:''*Q2>J;C_,BAS,[,/X@4@")GHJ,%D6K*=[8H.9#$"!6Y[3I.:!3L<&5AZV7A>[9+I5ZPY[.2[& -\JZ\Y6IF-RQ)5@ 5&:.(P_;* MNL:7*QQI 8/X(X.#:(V1-N6>L0<]^9)<68[6"'+82$U!U-\C+"#/-9/2X^^: MU&KVU(+M\0O[+\9X9F5%5LH@2W9Y_([._P&M4&!YMNP7)A? M=*BQCH4V>R%940LK#8J,5O_DJ79$2T#Q# NXM8#;%?#/"'BU@/?:'?Q:P'_M M#D$M8$RW*]N-XY9$DOF,LP/B&JW8],!XWT@K?V54)\I:*3 M(KE;+]''#Y_0!Y11]'O*]H+01,QLJ737&MB;6L^;2D_WC)X>^L:H3 5:T022 M ?GEN/QT1-Y6/FL8$\9X)+^X,F?/_=E_]Y]U/ MG.$U6>09/N\<7THXU%EQ2Y[512+1->>$[D"/)VCUI#-%?5711PM29I+D.EX7^\ZNB1%\D%.*O$87\1B'?*.2_0J&3-(5*D:$$K!A#PZCOU\?Y%&-O M9C^VH]H'!=@-3T'+/LC%?C ]1:WZ*.P%L=^@3@P/&L.#41EW"@4OWE> MQCU?XZB;EGU,V$W*/L3W.C2K/B;RSP1UVE@\';5X17=J!7A&=Q,560&$;]*) M\7>BXIRS4D=BQ+78.98RYWU$&[>J*W[S>->4)U&8=BZ/Q0 HU)7@).0#(#R- M.F=Y-80*HW@X[-@]FNZ.FTYR$,;3Z@7Z %(EP)A+CZ4&OY-:@X_%!K]]M:DI MVUZ?AMUC/0"*G;@;Y3[(=9VH&^4!5. '9Z)\+#=XO-[\"A0XR8VO2:(>J)F0 MG.C'_YAGCQ4!A^\DV,>2@J.W#W;4J_41CN)NM/LH+_1ZA[J/PF'L=U\7 ["X M?4-4UMNMSJ$ OC,MFU!V*==5S[]FM6D+KTTSU%F_P9<+/+"^U&VDZ52.]%4/ M^HUP51D$RF&KMG(N(I5HO&KKJHEDI>E;[IE479 9IJH5!JX!ZON6,?DRT1LT MS?7\7U!+ P04 " "!A613JUGZ5L,# #[#0 &0 'AL+W=O14S&Q]E(> M'FQ;;/:DP.*>'0B%+UO&"RRAR'>V.'""4TTJJPIZ.#WA'UD2^'EXXE.Q&)QO&%!'EG^/4OE?F+%%DK)%I>Y_,*.2U*/)U!Z M&Y8+_8^.-=:QT*84DA4U&7I09+1ZXI^U#RT"Z)@)7DWPN@3_"F%4$T9#"7Y- M\(<2@IH0#"6$-2$<2HAJ0C34I;@FQ$-;2&J"7E]V-7]Z\N=8XNF8LR/B"@UJ MZD6O(,V&.<^H6NMKR>%K!CPY76!.,[H3Z$ @ O:8$_01K2&BTC(GB&W1(RL. MI<1Z94)QAD6V09BF:)[EI20I:A1>0&&M%6[G1.(L%W>@];J>H]N;.W2#[$I? MH(RB5YI)\:%5\77/2@&R4'ES5A[;$H:I.FMOZB'-JB%Y5X8T0I\9E7N!%C0E MJ8&_[.S[Q>P34YW*.1\P%YCN<:^O/83_^CI+WT>3_],^9 M=Z_2%\,[[QCH3\,[;Z(_#^^\B;[\;\ZO_O78SQ;"J FVD=8;7='[LRP(QY)Q M!)N4RM%U**5U*.5,M *QIT&_:=#7#?K7&H3-4HF:@JABAIJI=L3WZWME&D"N'X_.47,#RG-"[QRU,&FY;G2.>C)IN6%XCGHVH/P@Z:"6)I23^.>H ME0$5Q=$O)\Z<#QKG@U[GO^M=%N84O\.4[PBB9?$&,PLIM$YZD MR6HQW$+FJS[?F::L:C)H]33T0M?I^'R)\I,P<#O>7**"T(L[6BN#ULB)?+,W M8>--^+]Z@==V=J'$GZD\2$+,9W;""V+8YY*]\83:W4XG9P./=.QZZ%&=5) $LS*G+.?AWIE9'D MQF:/D\:%I->%>6M%#?,A&>2#&=7UP8SZC0]&TH4/=NLD"'O-3E\C!-JPDLIJ MGVIJFYO*)WU []3/W(=GUU"_A)M-=1'Y)5]=BV"KWF54H)QLH2GG/H*XX-55 MHRI(=M#GT##[EC%Y*J@&FOO>]!]02P,$% @ @85D M4T<'"7K6 P 'Q( !D !X;"]W;W)K&ULS5A= MCZ,V%/TK%D^[4CM@( 1&F4@S2:JNU)5&D[;[4/7! TZP!FQJF\GLOZ]M""1 M2+3M R\!S+GG?OC$%WMQ8/Q-I!A+\)%G5#Q8J93%O6V+.,4Y$G>LP%2]V3&> M(ZD>^=X6!<#?ZF%6&YC4[2IW4[@U MDFBYX.P N$8K-GUCJF^L5;T(U4+92J[>$F4GEQO$*:%[ 0JLY),BCL'/8*OD MF)09!FP''JDD"!;[_2SU__::(P1>)<_'W2%A^$Y9OPO)O"4NT8>&SL.+S ML'#_K_)):;=2\>L5^7T(O"H.%_7ZJAS[*=9T@.D>MAU"1VT%M M!E S;]9Z/*O6K*G6;+1:*T;?,9?D5:T(JAOM,.>J1&IIBM]&YB)HV(,I263> MA#6?@D3FO0ES.O*XBEA?16SZ".CXX; JPJ9 X6B!MGK^ 2MT[@)(!HJ2QZGJ MV;HHN:K'-8%$C:-H2@*!3MLZG2E(I([B=/8"O[>*#**">4+UA(3F)Y7#Q 28D48U/AMM3NI#32]C_H34(C7O\?'OK= MI60 Y4:!U]5('^4YOMO5R!!7Y%W02-N8X7AG5E-A=C\TQK>*I&UC<#8ID;0= M$ :3$$G0%XD_<[LB&4"I+XVN2&[AVESC.J]7VYKA>&_^ACA'5/Y0UX%M?X/A MI.32]D,834(N46_R?-<)NW+IHR#T_%[CN0FVN0JK2F:?;'ASS/?FI$&HE$LJ MJ\U),]J<9CR:/7QG_ G>K^# ^%J??I@-=DM?'9U\17Q/U =/AG?*E7,W5['R MZC2B>I"L,-OM5R;5YMWK]C3!X?M(/F3&CY+U!+ P04 " "! MA613"MQLOEL" !8!@ &0 'AL+W=O^$Z[\V;9W&<;)5^P!+ L"=9U3CU2F/65[Z/60F2XT"MH::;0FG)#6WU MRL>U!IX[D*S\* C&ON2B]M+$G=WI-%&-J40-=YIA(R77/V=0J>W4"[W=P;U8 ME<8>^&FRYBM8@/FROM.T\WN67$BH4:B::2BFWIOP:CZQ\2[@JX M[JV9K62I MU(/=W.13+[""H(+,6 9.TP;F4%66B&0\=IQ>G]("]]<[]G>N=JIER1'FJOHF MRZ'@367NU?8#=/6,+%^F*G0CV[:QD]AC68-&R0Y,"J2HVYD_=3[L M <+A$4#4 :*_!<0=(':%MLI<6=?<\#31:LNTC28VNW#>.#15(VK[*RZ,IEM! M.),NFB7"8P.U8;"A$=G9-1@N*CQGK]C[ZQL:YR5?@%[1"DNN 7>3J-GG4C7( MZQP3WY :R^EG7>99FSDZDODCUP,6C"Y8%$3! ?C\-/Q39@8L#AT\_!WNDP>] M$5%O1.3XXI>->&N-8-]O*8+=&)#XXP1_W//'CG]XA'_6()T@TH?[V @4]B.^ M8'4CEZ"9*GI/$1O(V1EYVYZ<'W*V335RJ>P[W:31.!Q>)O[F@,)AKW!X4N&? M#IPH>M13COZ)J>.>?_S?3)V/GYD:!L%A2R>]OLEI2]O\FKH6M9J<%5I)!IA9 MFA?43)ZIN7RFQM][][;GTI-:B1I9!06A@L&$X+KM8^W&J+5K!4MEJ+&X94FM M'[0-H/M"*;/;V.[2_YFDOP!02P,$% @ @85D4[G:'5(J P $A, T M !X;"]S='EL97,N>&ULW5A1;]HP$/XKD3M-G30U0$9*5D#:D"I-VJ9*[ M*D,HKW>I&RV6JQ6&.0^.TG5 5D4< MUHD;#S,EV_Q%Q!EL9)JSX(F*$9E0P:>:@U=&G$NEJ]@N@ON>UL/W@$T/!'(A&H$]X@SC84&-85K>VDXUN#*^ M@(*Z_; NK,*YINMNKT]:A^IA@TR53IENPG3)QC0>"I:!',WG"W@:580 &J-R MVT@YG2M)*PT;C[IA:6=,B'MXX7YD.]RK;"NG'14]=9/\<1,;G(/(L:G)P^B*CY"0U MAO7^O75(V#DB--8 CF(C\AT.?:(-&DR77!@NZ]Z"IRF3+TX*EM[0J3WP[_#; M\2G+Z%*8AP8:)%$4Q]B*3B9>!1-LW>(8/GXV3!MX8'$@TI^M-9YM MO$(.UP&6TT,5@LT4KT1LIOA: ^)?-_!($G^VL3C@@64!JQV([X\#->7WB2+( M*J8->X-Q)$DP!&K17Z-QC*Q.#+<_/]A;$D5)XD< \RN((@R!MQ%', 6@ 4.B MJ-H']_:C<+-/A>V_8./?4$L#!!0 ( (&%9%.7BKL

-8?2 M0$3;8T.P6BP^0"X99K>]9!:GSF:^VJI7^A=TI T?6UK4RP*;;S/S.*5G[K5*A;6;9 M?'XZ:Z4VR=LWA[*NW QOV*"JH*V!G?V.KUK=^H?C_::XT5ZO=*/#W2*)_S[%[VD%_DRL<] M0:X^2P!9)*=S*'"MG0_QC%B^!,8;!2?OM[I@?]=-4.Y"!O6'L]U.FTU?#%S% M#%U&K(?#Y[X2S]S_J4:[7NM*7=BJ:Y4)^WITJND!C=_JG4^$D:U:).?V1CEQ M)3>JORCXE/XVLJMU4+4XMZ96QN__\[;1-1 A MR(R S":$_"=#D#D!F4\)F2/(@H LGA'RT,BU6/8X\%4$61*0Y820@^8^)2!/ MIVSN D&^)"!?\D+^)JOK#0QWIA82_HP,G5/"K@44ZF1 D*\(R%?$;D]5W;2@3YFH!\S0S9>6V4]Z*R[4J;> (>P>?4$#[G97M7_=O!C\9J M@VK\(BL=Q =C;QM5;Y3 F*1IF%4#V0'NNG 7FU8!\J[_PJ_"*'PCII1G4F;1 M7,+=9S;]CPKI/42!)W248%)FPWP*6\@.5><%:=I2A@9LS!(XPX"5D8)(V,6!HV)$W5&3DZ8I3$6 M#<3/,/=LE/\%0U+NR)C=06:$89-3!LF8#4)DA+Y*,28EE8Q9*N,Y8;31*;]D MS'XY&ACVI!B3TDS&K)EC&OQ1GQB38S;0$4P;* MF0U$BQ*'CIPR4,YL(!IST(4H ^7,!J(Q!UV(,E#.;" :\Q1C4@;*F0TT2$?O M'Z6CBT$7HBR4,UOH6#JZ4$'J!L^""LI"!;.%CJ>C."IA3,I"!;.%*,R/TF%, MRD(%^]+9P]K/?5/C8%10\BF8Y3.V"C1.23Z<87;/T2!\(K)Y7&^YQZ3<4SS' MDMHX9F]SC$FYIYAH=2W69EQ_N<>DW%-,-?OI:W.0V0O*/06S>RA,.(0Q*?<4 MW&MN9&WB^%92[BF9W4-CXOA64NXIF=U#8'Y6'C\8*2GWE,SNH6L3I\R2DE#Y M'!(:Q[Q2;HTQ*0N5TUD(:A.'X9)\28#90B/+,0^S26$Q)F6ADME").9@>"\I M"Y7<%GK\K&(T'964@)_ !, M]BW $:&BH46\@!4F%Y'$ECT(>'NB4(1E49P&S:JLL>7MO_IDC7WWE/=MV77' M<;OKQ]G'87\-7U^7BZLNZ&0UM.RV&3^G;UVFYRTOE\ MD8:?,YK[NY\S9\^???Z?B=UZO5OEAV[U=LC'\LO@]-X-K^,VY]+,GMMAD\NR M21_[R^DQG0]R=9KBOJK01Z M*^JM!'HKZJT$>BOJK01Z*^JM!'HKZJT$>BOJK01Z&^IM!'H;ZFT$>AOJ;01Z MVV2SA$!O0[V-0&]#O8U ;T.]C4!O0[V-0&]#O8U ;T.]C4!O1[V=0&]'O9U M;T>]G4!O1[V=0&^?;'83Z.VHMQ/H[:BW$^CMJ+<3Z.VHMQ/H[:BW$^@=J'<0 MZ!VH=Q#H':AW$.@=J'<0Z!VH=Q#H'9./E01Z!^H=!'H'ZAT$>@?J'7^I]U@^ M]WF\]'RO\?E_274YW9LOCS\OOT^BA(LSS@G^2KG_ E!+ P04 " "!A613 M8B/G&-@! !((@ $P %M#;VYT96YT7U1Y<&5S72YX;6S-VEU/@S 4!N"_ MLG!K1M>O^1'GC7JK7O@'*IP-,J!-V\WY[RU,331*7&;B>P.!MN<]M,ESQ>7C MBZ,PV;5-%Q99%:.[8"P4%;4FY-91ET:6UK_8LX4:[,B)F:S.2ML%ZF+ MT]C7R*XN;VAI-DV[7-8%E;;8M&E)'IPG4X:**+9-OB]Z,IXNI!. MS-/A<>]'TJ^>NE2(?*S'/_$C,94^^ONH/^V2RE]FI^U]MGX]G$=@P^WX/?Y\ MQA_U#^Q#@/0A0?I0('UHD#[F('V<@O1Q!M+'.4@??(;2"(JH'(54CF(J1T&5 MHZC*45CE**YR%%@YBJP"15:!(JM D56@R"I09!4HL@H4606*K )%5H$BJT21 M5:+(*E%DE2BR2A19)8JL$D56B2*K1)%5HLBJ4&15*+(J%%D5BJP*15:%(JM" MD56AR*I09%4HLFH4636*K!I%5HTBJT:15:/(JE%DU2BRZO^4]X K @ $0 @ &O 9&]C4')O<',O8V]R92YX M;6Q02P$"% ,4 " "!A613F5R<(Q & "<)P $P @ ', M 0 >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0 ( (&%9%->Z$LC9P4 M *,6 8 " @0T( !X;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ @85D4Y=F M'0+> @ ,0@ !@ ("!FA, 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0#% @ @85D4V$/T0) @ O00 !@ M ("!>BD 'AL+W=O[+(U[@< )\@ 8 " @? K !X;"]W;W)K M&PO=V]R:W-H965T&UL4$L! M A0#% @ @85D4P,5MSKO(@ C&T !@ ("!+#D 'AL M+W=O&UL4$L! A0#% @ @85D4UMQ'/2-"@ _AH !D ("! MG6, 'AL+W=O(3Z!P# ">!@ &0 @(%A;@ >&PO=V]R:W-H965T&UL4$L! A0#% M @ @85D4S/&8Y++ P 0PD !D ("!H70 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ @85D4YQW8)FR @ X04 !D M ("!6*$ 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ @85D4ZEU'2C2 @ * 8 !D ("!5S >&PO=V]R:W-H965T&UL4$L! A0#% @ M@85D4]&- *[% @ M@4 !D ("!J]0 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ @85D4YI0H..# @ 0@8 !D M ("!&>P 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ @85D4Y R1J/X P '@X !D ("!6O< 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ @85D M4Z_&@VZK @ I@8 !D ("!< (! 'AL+W=O&PO=V]R:W-H965T<* 0!X;"]W;W)K M&UL4$L! A0#% @ @85D4Y5WW3%^ @ BP8 M !D ("!+P\! 'AL+W=O&PO=V]R:W-H965TQVR MW ( 4) 9 " @5(5 0!X;"]W;W)K&UL4$L! A0#% @ @85D4VC3A6Q0!P G"H !D M ("!91@! 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ @85D4_6Z0^?M @ D@D !D ("!"RD! 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ @85D4Y'$ M\.OE @ 1@< !D ("!S30! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ @85D4UHS/L*" @ J 8 !D M ("!%#\! 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ @85D4ZM9^E;# P ^PT !D ("! MR$D! 'AL+W=OM8# ?$@ &0 @('"30$ >&PO=V]R:W-H965T&UL4$L! A0#% M @ @85D4[G:'5(J P $A, T ( !850! 'AL+W-T>6QE M&PO=V]R:V)O;VLN>&UL4$L! A0#% @ M@85D4Q,G[+KO 0 I2( !H ( !6UT! 'AL+U]R96QS+W=O M XML 71 Show.js IDEA: XBRL DOCUMENT // Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission. Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105. var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0); e.removeAttribute('id');a.parentNode.appendChild(e)}} if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'} e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}} XML 72 report.css IDEA: XBRL DOCUMENT /* Updated 2009-11-04 */ /* v2.2.0.24 */ /* DefRef Styles */ ..report table.authRefData{ background-color: #def; border: 2px solid #2F4497; font-size: 1em; position: absolute; } ..report table.authRefData a { display: block; font-weight: bold; } ..report table.authRefData p { margin-top: 0px; } ..report table.authRefData .hide { background-color: #2F4497; padding: 1px 3px 0px 0px; text-align: right; } ..report table.authRefData .hide a:hover { background-color: #2F4497; } ..report table.authRefData .body { height: 150px; overflow: auto; width: 400px; } ..report table.authRefData table{ font-size: 1em; } /* Report Styles */ ..pl a, .pl a:visited { color: black; text-decoration: none; } /* table */ ..report { background-color: white; border: 2px solid #acf; clear: both; color: black; font: normal 8pt Helvetica, Arial, san-serif; margin-bottom: 2em; } ..report hr { border: 1px solid #acf; } /* Top labels */ ..report th { background-color: #acf; color: black; font-weight: bold; text-align: center; } ..report th.void { background-color: transparent; color: #000000; font: bold 10pt Helvetica, Arial, san-serif; text-align: left; } ..report .pl { text-align: left; vertical-align: top; white-space: normal; width: 200px; white-space: normal; /* word-wrap: break-word; */ } ..report td.pl a.a { cursor: pointer; display: block; width: 200px; overflow: hidden; } ..report td.pl div.a { width: 200px; } ..report td.pl a:hover { background-color: #ffc; } /* Header rows... */ ..report tr.rh { background-color: #acf; color: black; font-weight: bold; } /* Calendars... */ ..report .rc { background-color: #f0f0f0; } /* Even rows... */ ..report .re, .report .reu { background-color: #def; } ..report .reu td { border-bottom: 1px solid black; } /* Odd rows... */ ..report .ro, .report .rou { background-color: white; } ..report .rou td { border-bottom: 1px solid black; } ..report .rou table td, .report .reu table td { border-bottom: 0px solid black; } /* styles for footnote marker */ ..report .fn { white-space: nowrap; } /* styles for numeric types */ ..report .num, .report .nump { text-align: right; white-space: nowrap; } ..report .nump { padding-left: 2em; } ..report .nump { padding: 0px 0.4em 0px 2em; } /* styles for text types */ ..report .text { text-align: left; white-space: normal; } ..report .text .big { margin-bottom: 1em; width: 17em; } ..report .text .more { display: none; } ..report .text .note { font-style: italic; font-weight: bold; } ..report .text .small { width: 10em; } ..report sup { font-style: italic; } ..report .outerFootnotes { font-size: 1em; } XML 73 FilingSummary.xml IDEA: XBRL DOCUMENT 3.21.2 html 254 359 1 false 62 0 false 7 false false R1.htm 0001001 - Document - Cover Page Sheet http://www.gdyn.com/role/CoverPage Cover Page Cover 1 false false R2.htm 1001002 - Statement - Unaudited Condensed Consolidated Balance Sheets Sheet http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets Unaudited Condensed Consolidated Balance Sheets Statements 2 false false R3.htm 1002003 - Statement - Unaudited Condensed Consolidated Balance Sheets (Parenthetical) Sheet http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheetsParenthetical Unaudited Condensed Consolidated Balance Sheets (Parenthetical) Statements 3 false false R4.htm 1003004 - Statement - Unaudited Condensed Consolidated Statements of Loss and Comprehensive Loss Sheet http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss Unaudited Condensed Consolidated Statements of Loss and Comprehensive Loss Statements 4 false false R5.htm 1004005 - Statement - Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity Sheet http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity Statements 5 false false R6.htm 1005006 - Statement - Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity (Parenthetical) Sheet http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquityParenthetical Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity (Parenthetical) Statements 6 false false R7.htm 1006007 - Statement - Unaudited Condensed Consolidated Statement of Cash Flows Sheet http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows Unaudited Condensed Consolidated Statement of Cash Flows Statements 7 false false R8.htm 2101101 - Disclosure - Background and nature of operations Sheet http://www.gdyn.com/role/Backgroundandnatureofoperations Background and nature of operations Notes 8 false false R9.htm 2103102 - Disclosure - Basis of presentation and summary of significant accounting policies Sheet http://www.gdyn.com/role/Basisofpresentationandsummaryofsignificantaccountingpolicies Basis of presentation and summary of significant accounting policies Notes 9 false false R10.htm 2108103 - Disclosure - Business combination Sheet http://www.gdyn.com/role/Businesscombination Business combination Notes 10 false false R11.htm 2112104 - Disclosure - Acquisition of Tacit Knowledge Inc. Sheet http://www.gdyn.com/role/AcquisitionofTacitKnowledgeInc Acquisition of Tacit Knowledge Inc. Notes 11 false false R12.htm 2118105 - Disclosure - Property and equipment, net Sheet http://www.gdyn.com/role/Propertyandequipmentnet Property and equipment, net Notes 12 false false R13.htm 2121106 - Disclosure - Intangible assets, net Sheet http://www.gdyn.com/role/Intangibleassetsnet Intangible assets, net Notes 13 false false R14.htm 2124107 - Disclosure - Other current liabilities Sheet http://www.gdyn.com/role/Othercurrentliabilities Other current liabilities Notes 14 false false R15.htm 2128108 - Disclosure - Income taxes Sheet http://www.gdyn.com/role/Incometaxes Income taxes Notes 15 false false R16.htm 2130109 - Disclosure - Stockholders' equity Sheet http://www.gdyn.com/role/Stockholdersequity Stockholders' equity Notes 16 false false R17.htm 2132110 - Disclosure - Stock-based compensation Sheet http://www.gdyn.com/role/Stockbasedcompensation Stock-based compensation Notes 17 false false R18.htm 2145111 - Disclosure - Earnings per share Sheet http://www.gdyn.com/role/Earningspershare Earnings per share Notes 18 false false R19.htm 2149112 - Disclosure - Commitments and contingencies Sheet http://www.gdyn.com/role/Commitmentsandcontingencies Commitments and contingencies Notes 19 false false R20.htm 2150113 - Disclosure - Subsequent events Sheet http://www.gdyn.com/role/Subsequentevents Subsequent events Notes 20 false false R21.htm 2204201 - Disclosure - Basis of presentation and summary of significant accounting policies (Policies) Sheet http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies Basis of presentation and summary of significant accounting policies (Policies) Policies 21 false false R22.htm 2305301 - Disclosure - Basis of presentation and summary of significant accounting policies (Tables) Sheet http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesTables Basis of presentation and summary of significant accounting policies (Tables) Tables http://www.gdyn.com/role/Basisofpresentationandsummaryofsignificantaccountingpolicies 22 false false R23.htm 2309302 - Disclosure - Business combination (Tables) Sheet http://www.gdyn.com/role/BusinesscombinationTables Business combination (Tables) Tables http://www.gdyn.com/role/Businesscombination 23 false false R24.htm 2313303 - Disclosure - Acquisition of Tacit Knowledge Inc. (Tables) Sheet http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncTables Acquisition of Tacit Knowledge Inc. (Tables) Tables http://www.gdyn.com/role/AcquisitionofTacitKnowledgeInc 24 false false R25.htm 2319304 - Disclosure - Property and equipment, net (Tables) Sheet http://www.gdyn.com/role/PropertyandequipmentnetTables Property and equipment, net (Tables) Tables http://www.gdyn.com/role/Propertyandequipmentnet 25 false false R26.htm 2322305 - Disclosure - Intangible assets, net (Tables) Sheet http://www.gdyn.com/role/IntangibleassetsnetTables Intangible assets, net (Tables) Tables http://www.gdyn.com/role/Intangibleassetsnet 26 false false R27.htm 2325306 - Disclosure - Other current liabilities (Tables) Sheet http://www.gdyn.com/role/OthercurrentliabilitiesTables Other current liabilities (Tables) Tables http://www.gdyn.com/role/Othercurrentliabilities 27 false false R28.htm 2333307 - Disclosure - Stock-based compensation (Tables) Sheet http://www.gdyn.com/role/StockbasedcompensationTables Stock-based compensation (Tables) Tables http://www.gdyn.com/role/Stockbasedcompensation 28 false false R29.htm 2346308 - Disclosure - Earnings per share (Tables) Sheet http://www.gdyn.com/role/EarningspershareTables Earnings per share (Tables) Tables http://www.gdyn.com/role/Earningspershare 29 false false R30.htm 2402401 - Disclosure - Background and nature of operations (Details) Sheet http://www.gdyn.com/role/BackgroundandnatureofoperationsDetails Background and nature of operations (Details) Details http://www.gdyn.com/role/Backgroundandnatureofoperations 30 false false R31.htm 2406402 - Disclosure - Basis of presentation and summary of significant accounting policies - Narrative (Details) Sheet http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails Basis of presentation and summary of significant accounting policies - Narrative (Details) Details http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesTables 31 false false R32.htm 2407403 - Disclosure - Basis of presentation and summary of significant accounting policies - Schedule of accounts receivable and allowance for doubtful accounts (Details) Sheet http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesScheduleofaccountsreceivableandallowancefordoubtfulaccountsDetails Basis of presentation and summary of significant accounting policies - Schedule of accounts receivable and allowance for doubtful accounts (Details) Details 32 false false R33.htm 2410404 - Disclosure - Business combination - Additional Information (Details) Sheet http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails Business combination - Additional Information (Details) Details 33 false false R34.htm 2411405 - Disclosure - Business combination - Schedule of consideration for business combination (Details) Sheet http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails Business combination - Schedule of consideration for business combination (Details) Details 34 false false R35.htm 2414406 - Disclosure - Acquisition of Tacit Knowledge Inc. - Narrative (Details) Sheet http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails Acquisition of Tacit Knowledge Inc. - Narrative (Details) Details 35 false false R36.htm 2415407 - Disclosure - Acquisition of Tacit Knowledge Inc. - Assets acquired and liabilities assumed (Details) Sheet http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails Acquisition of Tacit Knowledge Inc. - Assets acquired and liabilities assumed (Details) Details 36 false false R37.htm 2416408 - Disclosure - Acquisition of Tacit Knowledge Inc. - Intangible assets acquired (Details) Sheet http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails Acquisition of Tacit Knowledge Inc. - Intangible assets acquired (Details) Details 37 false false R38.htm 2417409 - Disclosure - Acquisition of Tacit Knowledge Inc. - Pro forma information (Details) Sheet http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails Acquisition of Tacit Knowledge Inc. - Pro forma information (Details) Details 38 false false R39.htm 2420410 - Disclosure - Property and Equipment, net (Details) Sheet http://www.gdyn.com/role/PropertyandEquipmentnetDetails Property and Equipment, net (Details) Details 39 false false R40.htm 2423411 - Disclosure - Intangible assets, net (Details) Sheet http://www.gdyn.com/role/IntangibleassetsnetDetails Intangible assets, net (Details) Details http://www.gdyn.com/role/IntangibleassetsnetTables 40 false false R41.htm 2426412 - Disclosure - Other current liabilities - Schedule of other current liabilities (Details) Sheet http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails Other current liabilities - Schedule of other current liabilities (Details) Details 41 false false R42.htm 2427413 - Disclosure - Other current liabilities - Narrative (Details) Sheet http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails Other current liabilities - Narrative (Details) Details 42 false false R43.htm 2429414 - Disclosure - Income taxes (Details) Sheet http://www.gdyn.com/role/IncometaxesDetails Income taxes (Details) Details http://www.gdyn.com/role/Incometaxes 43 false false R44.htm 2431415 - Disclosure - Stockholders' equity (Details) Sheet http://www.gdyn.com/role/StockholdersequityDetails Stockholders' equity (Details) Details http://www.gdyn.com/role/Stockholdersequity 44 false false R45.htm 2434416 - Disclosure - Stock-based compensation - 2018 Stock Plan - Narrative (Details) Sheet http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails Stock-based compensation - 2018 Stock Plan - Narrative (Details) Details 45 false false R46.htm 2435417 - Disclosure - Stock-based compensation - Schedule of conversion of the vested and unvested options (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails Stock-based compensation - Schedule of conversion of the vested and unvested options (Details) Details 46 false false R47.htm 2436418 - Disclosure - Stock-based compensation - 2020 Equity Incentive Plan - Narrative (Details) Sheet http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails Stock-based compensation - 2020 Equity Incentive Plan - Narrative (Details) Details 47 false false R48.htm 2437419 - Disclosure - Stock-based compensation - Schedule of awards available for grant (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails Stock-based compensation - Schedule of awards available for grant (Details) Details 48 false false R49.htm 2438420 - Disclosure - Stock-based compensation - Stock Options - Narrative (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails Stock-based compensation - Stock Options - Narrative (Details) Details 49 false false R50.htm 2439421 - Disclosure - Stock-based compensation - Schedule of estimated grant using the Black-Scholes (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails Stock-based compensation - Schedule of estimated grant using the Black-Scholes (Details) Details 50 false false R51.htm 2440422 - Disclosure - Stock-based compensation - Schedule of option activity (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails Stock-based compensation - Schedule of option activity (Details) Details 51 false false R52.htm 2441423 - Disclosure - Stock-based compensation - Restricted Stock Units - Narrative (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails Stock-based compensation - Restricted Stock Units - Narrative (Details) Details 52 false false R53.htm 2442424 - Disclosure - Stock-based compensation - Schedule of restricted stock unit activity (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails Stock-based compensation - Schedule of restricted stock unit activity (Details) Details 53 false false R54.htm 2443425 - Disclosure - Stock-based compensation - Performance Stock Units - Narrative (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails Stock-based compensation - Performance Stock Units - Narrative (Details) Details 54 false false R55.htm 2444426 - Disclosure - Stock-based compensation - Schedule of Employee stock-based compensation recognized (Details) Sheet http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails Stock-based compensation - Schedule of Employee stock-based compensation recognized (Details) Details 55 false false R56.htm 2447427 - Disclosure - Earnings per share - Schedule of Computation of Basic and Diluted Earnings Per Share (Details) Sheet http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails Earnings per share - Schedule of Computation of Basic and Diluted Earnings Per Share (Details) Details 56 false false R57.htm 2448428 - Disclosure - Earnings per share - Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share (Details) Sheet http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails Earnings per share - Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share (Details) Details 57 false false R58.htm 2451429 - Disclosure - Subsequent events (Details) Sheet http://www.gdyn.com/role/SubsequenteventsDetails Subsequent events (Details) Details http://www.gdyn.com/role/Subsequentevents 58 false false All Reports Book All Reports gdyn-20210930.htm gdyn-20210930.xsd gdyn-20210930_cal.xml gdyn-20210930_def.xml gdyn-20210930_lab.xml gdyn-20210930_pre.xml gdyn-20210930xex311.htm gdyn-20210930xex312.htm gdyn-20210930xex321.htm gdyn-20210930xex322.htm http://xbrl.sec.gov/country/2021 http://fasb.org/us-gaap/2021-01-31 http://xbrl.sec.gov/dei/2021 http://fasb.org/srt/2021-01-31 true true JSON 76 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "gdyn-20210930.htm": { "axisCustom": 0, "axisStandard": 19, "contextCount": 254, "dts": { "calculationLink": { "local": [ "gdyn-20210930_cal.xml" ] }, "definitionLink": { "local": [ "gdyn-20210930_def.xml" ] }, "inline": { "local": [ "gdyn-20210930.htm" ] }, "labelLink": { "local": [ "gdyn-20210930_lab.xml" ] }, "presentationLink": { "local": [ "gdyn-20210930_pre.xml" ] }, "schema": { "local": [ "gdyn-20210930.xsd" ], "remote": [ "https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd", "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd", "https://xbrl.sec.gov/country/2021/country-2021.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd", "https://xbrl.sec.gov/dei/2021/dei-2021.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd" ] } }, "elementCount": 452, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2021-01-31": 3, "http://www.gdyn.com/20210930": 1, "http://xbrl.sec.gov/dei/2021": 5, "total": 9 }, "keyCustom": 43, "keyStandard": 316, "memberCustom": 21, "memberStandard": 37, "nsprefix": "gdyn", "nsuri": "http://www.gdyn.com/20210930", "report": { "R1": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "0001001 - Document - Cover Page", "role": "http://www.gdyn.com/role/CoverPage", "shortName": "Cover Page", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2108103 - Disclosure - Business combination", "role": "http://www.gdyn.com/role/Businesscombination", "shortName": "Business combination", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2112104 - Disclosure - Acquisition of Tacit Knowledge Inc.", "role": "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeInc", "shortName": "Acquisition of Tacit Knowledge Inc.", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2118105 - Disclosure - Property and equipment, net", "role": "http://www.gdyn.com/role/Propertyandequipmentnet", "shortName": "Property and equipment, net", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2121106 - Disclosure - Intangible assets, net", "role": "http://www.gdyn.com/role/Intangibleassetsnet", "shortName": "Intangible assets, net", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherLiabilitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2124107 - Disclosure - Other current liabilities", "role": "http://www.gdyn.com/role/Othercurrentliabilities", "shortName": "Other current liabilities", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherLiabilitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2128108 - Disclosure - Income taxes", "role": "http://www.gdyn.com/role/Incometaxes", "shortName": "Income taxes", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2130109 - Disclosure - Stockholders' equity", "role": "http://www.gdyn.com/role/Stockholdersequity", "shortName": "Stockholders' equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2132110 - Disclosure - Stock-based compensation", "role": "http://www.gdyn.com/role/Stockbasedcompensation", "shortName": "Stock-based compensation", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2145111 - Disclosure - Earnings per share", "role": "http://www.gdyn.com/role/Earningspershare", "shortName": "Earnings per share", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2149112 - Disclosure - Commitments and contingencies", "role": "http://www.gdyn.com/role/Commitmentsandcontingencies", "shortName": "Commitments and contingencies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1001002 - Statement - Unaudited Condensed Consolidated Balance Sheets", "role": "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets", "shortName": "Unaudited Condensed Consolidated Balance Sheets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SubsequentEventsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2150113 - Disclosure - Subsequent events", "role": "http://www.gdyn.com/role/Subsequentevents", "shortName": "Subsequent events", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SubsequentEventsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2204201 - Disclosure - Basis of presentation and summary of significant accounting policies (Policies)", "role": "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies", "shortName": "Basis of presentation and summary of significant accounting policies (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2305301 - Disclosure - Basis of presentation and summary of significant accounting policies (Tables)", "role": "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesTables", "shortName": "Basis of presentation and summary of significant accounting policies (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2309302 - Disclosure - Business combination (Tables)", "role": "http://www.gdyn.com/role/BusinesscombinationTables", "shortName": "Business combination (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2313303 - Disclosure - Acquisition of Tacit Knowledge Inc. (Tables)", "role": "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncTables", "shortName": "Acquisition of Tacit Knowledge Inc. (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2319304 - Disclosure - Property and equipment, net (Tables)", "role": "http://www.gdyn.com/role/PropertyandequipmentnetTables", "shortName": "Property and equipment, net (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2322305 - Disclosure - Intangible assets, net (Tables)", "role": "http://www.gdyn.com/role/IntangibleassetsnetTables", "shortName": "Intangible assets, net (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherCurrentLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2325306 - Disclosure - Other current liabilities (Tables)", "role": "http://www.gdyn.com/role/OthercurrentliabilitiesTables", "shortName": "Other current liabilities (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherCurrentLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2333307 - Disclosure - Stock-based compensation (Tables)", "role": "http://www.gdyn.com/role/StockbasedcompensationTables", "shortName": "Stock-based compensation (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2346308 - Disclosure - Earnings per share (Tables)", "role": "http://www.gdyn.com/role/EarningspershareTables", "shortName": "Earnings per share (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1002003 - Statement - Unaudited Condensed Consolidated Balance Sheets (Parenthetical)", "role": "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheetsParenthetical", "shortName": "Unaudited Condensed Consolidated Balance Sheets (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": null }, "R30": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "2", "first": true, "lang": "en-US", "name": "us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1", "reportCount": 1, "unitRef": "usdPerShare", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2402401 - Disclosure - Background and nature of operations (Details)", "role": "http://www.gdyn.com/role/BackgroundandnatureofoperationsDetails", "shortName": "Background and nature of operations (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R31": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ia468ab5be5984e09a909bfb5a890fc7c_I20200305", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:CommonStockParOrStatedValuePerShare", "reportCount": 1, "unitRef": "usdPerShare", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2406402 - Disclosure - Basis of presentation and summary of significant accounting policies - Narrative (Details)", "role": "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "shortName": "Basis of presentation and summary of significant accounting policies - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i9d5855f551d34e898f926f9945d0842b_D20200305-20200305", "decimals": "-5", "lang": "en-US", "name": "gdyn:ProceedsFromTrust", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AccountsReceivableGrossCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2407403 - Disclosure - Basis of presentation and summary of significant accounting policies - Schedule of accounts receivable and allowance for doubtful accounts (Details)", "role": "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesScheduleofaccountsreceivableandallowancefordoubtfulaccountsDetails", "shortName": "Basis of presentation and summary of significant accounting policies - Schedule of accounts receivable and allowance for doubtful accounts (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AccountsReceivableGrossCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ia468ab5be5984e09a909bfb5a890fc7c_I20200305", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:CommonStockParOrStatedValuePerShare", "reportCount": 1, "unitRef": "usdPerShare", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2410404 - Disclosure - Business combination - Additional Information (Details)", "role": "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "shortName": "Business combination - Additional Information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i809db49c7cdc4434b9aac01243a52420_D20200305-20200305", "decimals": "-5", "lang": "en-US", "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i2db67d454b314beaa8508f52ecc557d7_D20200305-20200305", "decimals": "-3", "first": true, "lang": "en-US", "name": "gdyn:BusinessAcquisitionEquityInterestIssuedOrIssuablePostClosingShareAdjustmentExcludingPostClosingShareAdjustmentNumberOfShares", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2411405 - Disclosure - Business combination - Schedule of consideration for business combination (Details)", "role": "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "shortName": "Business combination - Schedule of consideration for business combination (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i2db67d454b314beaa8508f52ecc557d7_D20200305-20200305", "decimals": "-3", "lang": "en-US", "name": "us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationContingentConsiderationLiability", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2414406 - Disclosure - Acquisition of Tacit Knowledge Inc. - Narrative (Details)", "role": "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "shortName": "Acquisition of Tacit Knowledge Inc. - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ic1e70c745df84f26802e003a7133e788_I20210529", "decimals": "INF", "lang": "en-US", "name": "us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2415407 - Disclosure - Acquisition of Tacit Knowledge Inc. - Assets acquired and liabilities assumed (Details)", "role": "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "shortName": "Acquisition of Tacit Knowledge Inc. - Assets acquired and liabilities assumed (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ic1e70c745df84f26802e003a7133e788_I20210529", "decimals": "-3", "lang": "en-US", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ic1e70c745df84f26802e003a7133e788_I20210529", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2416408 - Disclosure - Acquisition of Tacit Knowledge Inc. - Intangible assets acquired (Details)", "role": "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "shortName": "Acquisition of Tacit Knowledge Inc. - Intangible assets acquired (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i5f8730ebc7f147dc941c9928608e771a_D20210529-20210529", "decimals": null, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:BusinessAcquisitionProFormaInformationTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i94215c6d6921431d8e0df039d7bf2865_D20210101-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:BusinessAcquisitionsProFormaRevenue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2417409 - Disclosure - Acquisition of Tacit Knowledge Inc. - Pro forma information (Details)", "role": "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails", "shortName": "Acquisition of Tacit Knowledge Inc. - Pro forma information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:BusinessAcquisitionProFormaInformationTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i94215c6d6921431d8e0df039d7bf2865_D20210101-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:BusinessAcquisitionsProFormaRevenue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:PropertyPlantAndEquipmentTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentNet", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2420410 - Disclosure - Property and Equipment, net (Details)", "role": "http://www.gdyn.com/role/PropertyandEquipmentnetDetails", "shortName": "Property and Equipment, net (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:PropertyPlantAndEquipmentTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i36b502cec5bf4665979b77315be91358_I20210930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1003004 - Statement - Unaudited Condensed Consolidated Statements of Loss and Comprehensive Loss", "role": "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss", "shortName": "Unaudited Condensed Consolidated Statements of Loss and Comprehensive Loss", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2423411 - Disclosure - Intangible assets, net (Details)", "role": "http://www.gdyn.com/role/IntangibleassetsnetDetails", "shortName": "Intangible assets, net (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:OtherCurrentLiabilitiesTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerRefundLiabilityCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2426412 - Disclosure - Other current liabilities - Schedule of other current liabilities (Details)", "role": "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails", "shortName": "Other current liabilities - Schedule of other current liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:OtherCurrentLiabilitiesTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerRefundLiabilityCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i047ae25a922d450d9b05f8a85ef20b00_I20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationContingentConsiderationLiability", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2427413 - Disclosure - Other current liabilities - Narrative (Details)", "role": "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails", "shortName": "Other current liabilities - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i06fda3290f594cbeba7d2268c585a7a0_I20210930", "decimals": "-5", "lang": "en-US", "name": "us-gaap:DueToRelatedPartiesCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxExpenseBenefit", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2429414 - Disclosure - Income taxes (Details)", "role": "http://www.gdyn.com/role/IncometaxesDetails", "shortName": "Income taxes (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "ix:continuation", "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "3", "lang": "en-US", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "us-gaap:CommonStockSharesAuthorized", "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "id60be9c458334849bfaba3740a5e4edb_I20201231", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:CommonStockSharesAuthorized", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2431415 - Disclosure - Stockholders' equity (Details)", "role": "http://www.gdyn.com/role/StockholdersequityDetails", "shortName": "Stockholders' equity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ifed7af1e9dfe4b3db81b718843022657_I20210706", "decimals": "2", "lang": "en-US", "name": "us-gaap:SaleOfStockPricePerShare", "reportCount": 1, "unique": true, "unitRef": "usdPerShare", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ProceedsFromStockOptionsExercised", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2434416 - Disclosure - Stock-based compensation - 2018 Stock Plan - Narrative (Details)", "role": "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "shortName": "Stock-based compensation - 2018 Stock Plan - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i9fe4353ec1c744e183f89ff36bc4813b_D20200305-20200305", "decimals": "-5", "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "id70ccac73c25454b9c89b58f4c5e834b_I20210630", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2435417 - Disclosure - Stock-based compensation - Schedule of conversion of the vested and unvested options (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails", "shortName": "Stock-based compensation - Schedule of conversion of the vested and unvested options (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i9249a0d1efef4e1fbe6d633b148f4ae7_D20200101-20200331", "decimals": "-3", "lang": "en-US", "name": "gdyn:ShareBasedCompensationArrangementByShareBasedPaymentCashOutOptionsOutstanding", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i5cb33a4d2bda4663863c571c76d9fd43_I20200305", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2436418 - Disclosure - Stock-based compensation - 2020 Equity Incentive Plan - Narrative (Details)", "role": "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "shortName": "Stock-based compensation - 2020 Equity Incentive Plan - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i5cb33a4d2bda4663863c571c76d9fd43_I20200305", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "if6797791fbfa4e4c9d6d8fbc9ebcb112_D20210101-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2437419 - Disclosure - Stock-based compensation - Schedule of awards available for grant (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "shortName": "Stock-based compensation - Schedule of awards available for grant (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i42ccb3b66e6340dab741de7da1da513f_I20201231", "decimals": "-3", "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib30d57553c584ba6ba6d4fe2f64ed407_D20210101-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2438420 - Disclosure - Stock-based compensation - Stock Options - Narrative (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails", "shortName": "Stock-based compensation - Stock Options - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i6876684f44b94559aa72b6e2403633a7_D20210701-20210930", "decimals": null, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i1b066d6492d240cd8ff6cc0b2f266ca6_I20191231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:SharesOutstanding", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1004005 - Statement - Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity", "role": "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity", "shortName": "Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "idd8e88b76d424eeabc92eef11741d6e9_D20200101-20200331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i437d4838dc314ba5980552fb53137627_D20210101-20210930", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "reportCount": 1, "unitRef": "number", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2439421 - Disclosure - Stock-based compensation - Schedule of estimated grant using the Black-Scholes (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails", "shortName": "Stock-based compensation - Schedule of estimated grant using the Black-Scholes (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i437d4838dc314ba5980552fb53137627_D20210101-20210930", "decimals": "2", "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i42ccb3b66e6340dab741de7da1da513f_I20201231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2440422 - Disclosure - Stock-based compensation - Schedule of option activity (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails", "shortName": "Stock-based compensation - Schedule of option activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib30d57553c584ba6ba6d4fe2f64ed407_D20210101-20210930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib30d57553c584ba6ba6d4fe2f64ed407_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2441423 - Disclosure - Stock-based compensation - Restricted Stock Units - Narrative (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "shortName": "Stock-based compensation - Restricted Stock Units - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i391a10fb43db4b17873fef64980ec340_D20210701-20210930", "decimals": "-4", "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "id12efa912ab64ab4a2104101ee21b538_I20201231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2442424 - Disclosure - Stock-based compensation - Schedule of restricted stock unit activity (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails", "shortName": "Stock-based compensation - Schedule of restricted stock unit activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "id12efa912ab64ab4a2104101ee21b538_I20201231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2443425 - Disclosure - Stock-based compensation - Performance Stock Units - Narrative (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "shortName": "Stock-based compensation - Performance Stock Units - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i3a77dd5318ec4cd78ffd61d942b5e8f6_D20210101-20210930", "decimals": "-5", "lang": "en-US", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2444426 - Disclosure - Stock-based compensation - Schedule of Employee stock-based compensation recognized (Details)", "role": "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails", "shortName": "Stock-based compensation - Schedule of Employee stock-based compensation recognized (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i7ed8e7befa19495b946a040cd551975c_D20210701-20210930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2447427 - Disclosure - Earnings per share - Schedule of Computation of Basic and Diluted Earnings Per Share (Details)", "role": "http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails", "shortName": "Earnings per share - Schedule of Computation of Basic and Diluted Earnings Per Share (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R57": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2448428 - Disclosure - Earnings per share - Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share (Details)", "role": "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails", "shortName": "Earnings per share - Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i10ef2187c0354741a13f54b039fdd97c_D20210701-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i2db67d454b314beaa8508f52ecc557d7_D20200305-20200305", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2451429 - Disclosure - Subsequent events (Details)", "role": "http://www.gdyn.com/role/SubsequenteventsDetails", "shortName": "Subsequent events (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "ix:continuation", "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "i1c8f83fd98f94b05826b2c64e5401bba_D20211001-20211031", "decimals": "-5", "lang": "en-US", "name": "us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ic9d32d4d47254ef9bd430f29b1c690e9_D20200101-20200331", "decimals": "-3", "first": true, "lang": "en-US", "name": "gdyn:RecapitalizedCostsNetOfTransactionCosts", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1005006 - Statement - Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity (Parenthetical)", "role": "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquityParenthetical", "shortName": "Unaudited Consolidated Statement of Convertible Preferred Stock and Stockholders' Equity (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ic9d32d4d47254ef9bd430f29b1c690e9_D20200101-20200331", "decimals": "-3", "first": true, "lang": "en-US", "name": "gdyn:RecapitalizedCostsNetOfTransactionCosts", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1006007 - Statement - Unaudited Condensed Consolidated Statement of Cash Flows", "role": "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows", "shortName": "Unaudited Condensed Consolidated Statement of Cash Flows", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:DepreciationAndAmortization", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2101101 - Disclosure - Background and nature of operations", "role": "http://www.gdyn.com/role/Backgroundandnatureofoperations", "shortName": "Background and nature of operations", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2103102 - Disclosure - Basis of presentation and summary of significant accounting policies", "role": "http://www.gdyn.com/role/Basisofpresentationandsummaryofsignificantaccountingpolicies", "shortName": "Basis of presentation and summary of significant accounting policies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "gdyn-20210930.htm", "contextRef": "ib865ddb66239442e9536c5b1a12bfc8a_D20210101-20210930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 62, "tag": { "country_GB": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "UNITED KINGDOM", "terseLabel": "United Kingdom" } } }, "localname": "GB", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://www.gdyn.com/role/IncometaxesDetails" ], "xbrltype": "domainItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag", "terseLabel": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code", "terseLabel": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_CoverAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cover page.", "label": "Cover [Abstract]" } } }, "localname": "CoverAbstract", "nsuri": "http://xbrl.sec.gov/dei/2021", "xbrltype": "stringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date", "terseLabel": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus", "terseLabel": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus", "terseLabel": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "gYearItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.", "label": "Document Period End Date", "terseLabel": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r455" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an quarterly report.", "label": "Document Quarterly Report", "terseLabel": "Document Quarterly Report" } } }, "localname": "DocumentQuarterlyReport", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r456" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report", "terseLabel": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type", "terseLabel": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One", "terseLabel": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine2": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 2 such as Street or Suite number", "label": "Entity Address, Address Line Two", "terseLabel": "Entity Address, Address Line Two" } } }, "localname": "EntityAddressAddressLine2", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town", "terseLabel": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code", "terseLabel": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province", "terseLabel": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r457" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key", "terseLabel": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding", "terseLabel": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status", "terseLabel": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "yesNoItemType" }, "dei_EntityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.", "label": "Entity [Domain]", "terseLabel": "Entity [Domain]" } } }, "localname": "EntityDomain", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "domainItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r457" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company", "terseLabel": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_EntityExTransitionPeriod": { "auth_ref": [ "r459" ], "lang": { "en-us": { "role": { "documentation": "Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards.", "label": "Entity Ex Transition Period", "terseLabel": "Entity Ex Transition Period" } } }, "localname": "EntityExTransitionPeriod", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number", "terseLabel": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r457" ], "lang": { "en-us": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category", "terseLabel": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code", "terseLabel": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r458" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current", "terseLabel": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "yesNoItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r457" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name", "terseLabel": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r457" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company", "terseLabel": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r457" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business", "terseLabel": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r457" ], "lang": { "en-us": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number", "terseLabel": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "employerIdItemType" }, "dei_LegalEntityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The set of legal entities associated with a report.", "label": "Legal Entity [Axis]", "terseLabel": "Legal Entity [Axis]" } } }, "localname": "LegalEntityAxis", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "stringItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number", "terseLabel": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r453" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security", "terseLabel": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r454" ], "lang": { "en-us": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name", "terseLabel": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol", "terseLabel": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://www.gdyn.com/role/CoverPage" ], "xbrltype": "tradingSymbolItemType" }, "gdyn_A2017AcquisitionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2017 Acquisition", "label": "2017 Acquisition [Member]", "terseLabel": "2017 Acquisition" } } }, "localname": "A2017AcquisitionMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "gdyn_A2020EquityIncentivePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2020 Equity Incentive Plan", "label": "2020 Equity Incentive Plan [Member]", "terseLabel": "2020 Equity Incentive Plan" } } }, "localname": "A2020EquityIncentivePlanMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "gdyn_AdditionalPaidInCapitalReductionOfProceedsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Additional Paid-In-Capital, Reduction Of Proceeds", "label": "Additional Paid-In-Capital, Reduction Of Proceeds [Member]", "terseLabel": "Additional Paid-In-Capital, Reduction Of Proceeds" } } }, "localname": "AdditionalPaidInCapitalReductionOfProceedsMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "gdyn_BasisofpresentationandsummaryofsignificantaccountingpoliciesDetailsTable": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Basis of presentation and summary of significant accounting policies (Details) [Table]", "terseLabel": "Basis of presentation and summary of significant accounting policies (Details) [Table]" } } }, "localname": "BasisofpresentationandsummaryofsignificantaccountingpoliciesDetailsTable", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "gdyn_BusinessAcquisitionEquityInterestIssuedOrIssuablePostClosingShareAdjustmentExcludingPostClosingShareAdjustmentNumberOfShares": { "auth_ref": [], "calculation": { "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Business Acquisition, Equity Interest Issued or Issuable, Post Closing Share Adjustment, Excluding Post-Closing Share Adjustment, Number of Shares", "label": "Business Acquisition, Equity Interest Issued or Issuable, Post Closing Share Adjustment, Excluding Post-Closing Share Adjustment, Number of Shares", "terseLabel": "Shares transferred at closing (in shares)" } } }, "localname": "BusinessAcquisitionEquityInterestIssuedOrIssuablePostClosingShareAdjustmentExcludingPostClosingShareAdjustmentNumberOfShares", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails" ], "xbrltype": "sharesItemType" }, "gdyn_BusinessAcquisitionEquityInterestIssuedOrIssuablePostClosingShareAdjustmentNumberOfShares": { "auth_ref": [], "calculation": { "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued", "weight": -1.0 } }, "lang": { "en-us": { "role": { "documentation": "Business Acquisition, Equity Interest Issued or Issuable, Post Closing Share Adjustment, Number of Shares", "label": "Business Acquisition, Equity Interest Issued or Issuable, Post Closing Share Adjustment, Number of Shares", "negatedLabel": "Less: Post-Closing share adjustment (in shares)", "terseLabel": "Post closing share adjustment (in shares)" } } }, "localname": "BusinessAcquisitionEquityInterestIssuedOrIssuablePostClosingShareAdjustmentNumberOfShares", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails" ], "xbrltype": "sharesItemType" }, "gdyn_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesReleasedFromEscrow": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Acquisition Equity Interests Issued Or Issuable Number Of Shares Released From Escrow", "label": "Business Acquisition Equity Interests Issued Or Issuable Number Of Shares Released From Escrow", "terseLabel": "Shares released from escrow (in shares)" } } }, "localname": "BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesReleasedFromEscrow", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "sharesItemType" }, "gdyn_BusinessAcquisitionNumberOfCommonStockSharesAcquired": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Acquisition, Number of Common Stock Shares Acquired", "label": "Business Acquisition, Number of Common Stock Shares Acquired", "terseLabel": "Number of common stock shares acquired (in shares)" } } }, "localname": "BusinessAcquisitionNumberOfCommonStockSharesAcquired", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "gdyn_BusinessAcquisitionNumberOfEmployeesAcquired": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Acquisition, Number of Employees Acquired", "label": "Business Acquisition, Number of Employees Acquired", "terseLabel": "Number of employees acquired" } } }, "localname": "BusinessAcquisitionNumberOfEmployeesAcquired", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails" ], "xbrltype": "integerItemType" }, "gdyn_BusinessAcquisitionNumberOfWarrantsAcquired": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Acquisition, Number of Warrants Acquired", "label": "Business Acquisition, Number of Warrants Acquired", "terseLabel": "Number of warrants acquired (in shares)" } } }, "localname": "BusinessAcquisitionNumberOfWarrantsAcquired", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "gdyn_BusinessAcquisitionStockRedeemedOrCalledDuringPeriodPricePerShare": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Acquisition, Stock Redeemed or Called During Period, Price Per Share", "label": "Business Acquisition, Stock Redeemed or Called During Period, Price Per Share", "terseLabel": "Stock redeemed, price per share (in usd per share)" } } }, "localname": "BusinessAcquisitionStockRedeemedOrCalledDuringPeriodPricePerShare", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "perShareItemType" }, "gdyn_BusinessCombinationContingentConsiderationSharesIssuedSubjectToEarnoutProvisions": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Combination, Contingent Consideration, Earnout Shares Issued", "label": "Business Combination, Contingent Consideration, Shares Issued Subject To Earnout Provisions", "terseLabel": "Shares issued subject to earnout provisions (in shares)" } } }, "localname": "BusinessCombinationContingentConsiderationSharesIssuedSubjectToEarnoutProvisions", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "sharesItemType" }, "gdyn_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAcquiredIncludingGoodwill": { "auth_ref": [], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets Acquired Including Goodwill", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets Acquired Including Goodwill", "totalLabel": "Total assets acquired" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAcquiredIncludingGoodwill", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails" ], "xbrltype": "monetaryItemType" }, "gdyn_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayableAndAccruedExpenses": { "auth_ref": [], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable and Accrued Expenses", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable and Accrued Expenses", "negatedTerseLabel": "Accounts payable and accrued expenses" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayableAndAccruedExpenses", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails" ], "xbrltype": "monetaryItemType" }, "gdyn_CertainSignificantRisksAndUncertaintiesPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Certain Significant Risks And Uncertainties [Policy Text Block]", "terseLabel": "Certain significant risks and uncertainties" } } }, "localname": "CertainSignificantRisksAndUncertaintiesPolicyTextBlock", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "gdyn_ChaSergMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "ChaSerg", "label": "ChaSerg [Member]", "terseLabel": "ChaSerg" } } }, "localname": "ChaSergMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "domainItemType" }, "gdyn_ClassOfWarrantOrRightExercised": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Class of Warrant or Right, Exercised", "label": "Class of Warrant or Right, Exercised", "terseLabel": "Warrants exercised (in shares)" } } }, "localname": "ClassOfWarrantOrRightExercised", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ClassOfWarrantOrRightRedemptionPrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Class of Warrant or Right, Redemption Price", "label": "Class of Warrant or Right, Redemption Price", "terseLabel": "Redemption price (in dollars per share)" } } }, "localname": "ClassOfWarrantOrRightRedemptionPrice", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "perShareItemType" }, "gdyn_ClassOfWarrantOrRightRedemptions": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Class Of Warrant Or Right, Redemptions", "label": "Class Of Warrant Or Right, Redemptions", "terseLabel": "Warrants redeemed (in shares)" } } }, "localname": "ClassOfWarrantOrRightRedemptions", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ContingentEquityInstrumentsExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Contingent Equity Instruments, Exercise Price", "label": "Contingent Equity Instruments, Exercise Price", "terseLabel": "Contingent earnout shares expected to vest, exercise price (in dollars per share)" } } }, "localname": "ContingentEquityInstrumentsExercisePrice", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "perShareItemType" }, "gdyn_ContingentEquityInstrumentsThresholdTradingTerm": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Contingent Equity Instruments, Threshold Trading Term", "label": "Contingent Equity Instruments, Threshold Trading Term", "terseLabel": "Contingent earnout shares expected to vest, threshold trading term" } } }, "localname": "ContingentEquityInstrumentsThresholdTradingTerm", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "durationItemType" }, "gdyn_ContingentEquityInstrumentsTradingTerm": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Contingent Equity Instruments, Trading Term", "label": "Contingent Equity Instruments, Trading Term", "terseLabel": "Contingent earnout shares expected to vest, trading period" } } }, "localname": "ContingentEquityInstrumentsTradingTerm", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "durationItemType" }, "gdyn_ContingentEquityInstrumentsVestingNumberUponClosingPrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Contingent Equity Instruments, Vesting Number Upon Closing Price", "label": "Contingent Equity Instruments, Vesting Number Upon Closing Price", "terseLabel": "Contingent earnout shares expected to vest (in shares)" } } }, "localname": "ContingentEquityInstrumentsVestingNumberUponClosingPrice", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ConversionOfWarrantAmountConverted": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Conversion of Warrant, Amount Converted", "label": "Conversion of Warrant, Amount Converted", "terseLabel": "Conversion of private warrants" } } }, "localname": "ConversionOfWarrantAmountConverted", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "gdyn_CostOfRevenueAndOperatingExpensesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cost Of Revenue and Operating Expenses", "label": "Cost Of Revenue and Operating Expenses [Member]", "terseLabel": "Cost Of Revenue and Operating Expenses" } } }, "localname": "CostOfRevenueAndOperatingExpensesMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "gdyn_DaxxWebIndustriesBVDaxxMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Daxx", "label": "Daxx Web Industries B.V. (\"Daxx\") [Member]", "terseLabel": "Daxx" } } }, "localname": "DaxxWebIndustriesBVDaxxMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "gdyn_DiscreteTaxExpenseBenefitDueToChangeInForeignTaxLaw": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Discrete Tax Expense (Benefit) Due To Change In Foreign Tax Law", "label": "Discrete Tax Expense (Benefit) Due To Change In Foreign Tax Law", "terseLabel": "Discrete tax expense" } } }, "localname": "DiscreteTaxExpenseBenefitDueToChangeInForeignTaxLaw", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/IncometaxesDetails" ], "xbrltype": "monetaryItemType" }, "gdyn_EarnoutSharesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Earnout Shares", "label": "Earnout Shares [Member]", "terseLabel": "Earnout Shares" } } }, "localname": "EarnoutSharesMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_EarnoutSharesOneMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Earnout Shares One", "label": "Earnout Shares One [Member]", "terseLabel": "Earnout Shares One" } } }, "localname": "EarnoutSharesOneMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_EarnoutSharesThreeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Earnout Shares Three", "label": "Earnout Shares Three [Member]", "terseLabel": "Earnout Shares Three" } } }, "localname": "EarnoutSharesThreeMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_EarnoutSharesTwoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Earnout Shares Two", "label": "Earnout Shares Two [Member]", "terseLabel": "Earnout Shares Two" } } }, "localname": "EarnoutSharesTwoMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_EstimatedFutureOperatingResultsPeriodSubsequentToAcquisitionDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Estimated Future Operating Results Period, Subsequent To Acquisition Date", "label": "Estimated Future Operating Results Period, Subsequent To Acquisition Date", "terseLabel": "Estimated future operating results period" } } }, "localname": "EstimatedFutureOperatingResultsPeriodSubsequentToAcquisitionDate", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails" ], "xbrltype": "durationItemType" }, "gdyn_FollowOnPublicOfferingMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Follow On Public Offering", "label": "Follow On Public Offering [Member]", "terseLabel": "Follow On Public Offering" } } }, "localname": "FollowOnPublicOfferingMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_FollowOnPublicOfferingSharesFromParentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Follow On Public Offering - Shares From Parent", "label": "Follow On Public Offering - Shares From Parent [Member]", "terseLabel": "Follow On Public Offering - Shares From Parent" } } }, "localname": "FollowOnPublicOfferingSharesFromParentMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_FollowOnPublicOfferingSharesFromSellingShareholdersMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Follow On Public Offering - Shares From Selling Shareholders", "label": "Follow On Public Offering - Shares From Selling Shareholders [Member]", "terseLabel": "Follow On Public Offering - Shares From Selling Shareholders" } } }, "localname": "FollowOnPublicOfferingSharesFromSellingShareholdersMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_GDIMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "GDI [Member]", "terseLabel": "GDI" } } }, "localname": "GDIMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "domainItemType" }, "gdyn_MaximumPayoutPercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "MaximumPayoutPercentage", "terseLabel": "Maximum payout, percentage" } } }, "localname": "MaximumPayoutPercentage", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails" ], "xbrltype": "percentItemType" }, "gdyn_NonStatutoryStockOptionNSOMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Non Statutory Stock Option (\"NSO\") [Member]", "terseLabel": "Non-Statutory Stock Options" } } }, "localname": "NonStatutoryStockOptionNSOMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "gdyn_NumberOfMajorCustomers": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of major customers.", "label": "Number Of Major Customers", "terseLabel": "Number of major customers" } } }, "localname": "NumberOfMajorCustomers", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "integerItemType" }, "gdyn_NumeratorForBasicAndDilutedLossPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "NumeratorForBasicAndDilutedLossPerShareAbstract", "terseLabel": "Numerator for basic and diluted loss per share" } } }, "localname": "NumeratorForBasicAndDilutedLossPerShareAbstract", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "gdyn_OtherLiabilitiesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Other Liabilities", "label": "Other Liabilities [Line Items]", "terseLabel": "Other Liabilities [Line Items]" } } }, "localname": "OtherLiabilitiesLineItems", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "stringItemType" }, "gdyn_PaymentsOfEquityIssuanceCosts": { "auth_ref": [], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Payments Of Equity Issuance Costs", "label": "Payments Of Equity Issuance Costs", "negatedLabel": "Equity issuance costs" } } }, "localname": "PaymentsOfEquityIssuanceCosts", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "gdyn_PrivateWarrantMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Private Warrant", "label": "Private Warrant [Member]", "terseLabel": "Private Warrant" } } }, "localname": "PrivateWarrantMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_ProceedsFromTrust": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Proceeds from trust.", "label": "ProceedsFromTrust", "terseLabel": "Cash proceeds from trust account" } } }, "localname": "ProceedsFromTrust", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "gdyn_PropertyPlantAndEquipmentExcludingCapitalizedSoftwareCostsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Property, Plant and Equipment, Excluding Capitalized Software Costs", "label": "Property, Plant and Equipment, Excluding Capitalized Software Costs [Member]", "terseLabel": "Property, Plant and Equipment, Excluding Capitalized Software Costs" } } }, "localname": "PropertyPlantAndEquipmentExcludingCapitalizedSoftwareCostsMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "gdyn_PublicWarrantMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Public Warrant", "label": "Public Warrant [Member]", "terseLabel": "Public Warrant" } } }, "localname": "PublicWarrantMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "gdyn_RecapitalizedCostsNetOfTransactionCosts": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "label": "Recapitalized Costs, Net Of Transaction Costs", "terseLabel": "Recapitalized transaction costs" } } }, "localname": "RecapitalizedCostsNetOfTransactionCosts", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquityParenthetical" ], "xbrltype": "monetaryItemType" }, "gdyn_ScheduleOfPropertyAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Schedule of property and equipment [Abstract]", "terseLabel": "Schedule of property and equipment [Abstract]" } } }, "localname": "ScheduleOfPropertyAndEquipmentAbstract", "nsuri": "http://www.gdyn.com/20210930", "xbrltype": "stringItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardContingentAwardVestingRightsBasedOnContributionMarginBenchmark": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Contingent Award Vesting Rights, Based On Contribution Margin Benchmark", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Contingent Award Vesting Rights, Based On Contribution Margin Benchmark", "terseLabel": "Vesting percentage, contribution margin" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardContingentAwardVestingRightsBasedOnContributionMarginBenchmark", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails" ], "xbrltype": "percentItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardContingentAwardVestingRightsBasedOnRevenueGrowthBenchmarkPercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Contingent Award Vesting Rights, Based On Revenue Growth Benchmark", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Contingent Award Vesting Rights, Based On Revenue Growth Benchmark, Percentage", "terseLabel": "Vesting percentage, revenue growth" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardContingentAwardVestingRightsBasedOnRevenueGrowthBenchmarkPercentage", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails" ], "xbrltype": "percentItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsEstimatedPayout": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Estimated Payout", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Estimated Payout", "terseLabel": "Estimated payout percentage" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsEstimatedPayout", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails" ], "xbrltype": "percentItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAndEquityInstrumentsOtherThanOptionsForfeituresInPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Instruments Other Than Options, Forfeitures in Period", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Instruments Other Than Options, Forfeitures in Period", "terseLabel": "Options, RSUs, and PSUs forfeited (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAndEquityInstrumentsOtherThanOptionsForfeituresInPeriod", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAndEquityInstrumentsOtherThanOptionsOtherIncreasesDecreasesInPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Instruments Other Than Options, Other Increases (Decreases) in Period", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Instruments Other Than Options, Other Increases (Decreases) in Period", "terseLabel": "Traded for taxes (returned to the pool) (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAndEquityInstrumentsOtherThanOptionsOtherIncreasesDecreasesInPeriod", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAndEquityOtherThanOptionsOutstandingRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Other Than Options, Outstanding", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options And Equity Other Than Options, Outstanding [Roll Forward]", "terseLabel": "Shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAndEquityOtherThanOptionsOutstandingRollForward", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails" ], "xbrltype": "stringItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsConvertedAndUnvestedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Converted and Unvested, Number of Shares", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Converted and Unvested, Number of Shares", "terseLabel": "Converted unvested balance (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsConvertedAndUnvestedNumberOfShares", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsConvertedAndVestedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Converted and Vested, Number of Shares", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Converted and Vested, Number of Shares", "terseLabel": "Converted vested balance (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsConvertedAndVestedNumberOfShares", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExchangeRatio": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exchange Ratio", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exchange Ratio", "terseLabel": "Exchange ratio" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExchangeRatio", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "pureItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodFairValue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Fair Value", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Fair Value", "terseLabel": "Options granted, fair value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodFairValue", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedExchangeRatio": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Exchange Ratio", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Exchange Ratio", "terseLabel": "Options, nonvested, exchange ratio" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedExchangeRatio", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "percentItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedOutstandingAndUnexercisedNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Outstanding and Unexercised, Number", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Outstanding and Unexercised, Number", "terseLabel": "Options, nonvested, outstanding and unexercised (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedOutstandingAndUnexercisedNumber", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedExchangeRatio": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Exchange Ratio", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Exchange Ratio", "terseLabel": "Options, vested, exchange ratio" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedExchangeRatio", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "percentItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedOutstandingAndUnexercisedNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Outstanding and Unexercised, Number", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Outstanding and Unexercised, Number", "terseLabel": "Options, vested, outstanding and unexercised (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedOutstandingAndUnexercisedNumber", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "gdyn_ShareBasedCompensationArrangementByShareBasedPaymentCashOutOptionsOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Compensation Arrangement By Share-based Payment, Cash Out Options, Outstanding", "negatedTerseLabel": "Cashed out (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentCashOutOptionsOutstanding", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails" ], "xbrltype": "sharesItemType" }, "gdyn_StockIssuedDuringThePeriodSharesRecapitalization": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Stock Issued During The Period, Shares, Recapitalization", "label": "Stock Issued During The Period, Shares, Recapitalization", "terseLabel": "ChaSerg shares recapitalized, net of transaction costs of $4,142 (in shares)" } } }, "localname": "StockIssuedDuringThePeriodSharesRecapitalization", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "sharesItemType" }, "gdyn_StockIssuedDuringThePeriodValueRecapitalization": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Stock Issued During The Period, Value, Recapitalization", "label": "Stock Issued During The Period, Value, Recapitalization", "terseLabel": "ChaSerg shares recapitalized, net of transaction costs of $4,142" } } }, "localname": "StockIssuedDuringThePeriodValueRecapitalization", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "gdyn_StockholdersequityDetailsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' equity (Details) [Line Items]", "terseLabel": "Stockholders' equity (Details) [Line Items]" } } }, "localname": "StockholdersequityDetailsLineItems", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "stringItemType" }, "gdyn_StockholdersequityDetailsTable": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' equity (Details) [Table]", "terseLabel": "Stockholders' equity (Details) [Table]" } } }, "localname": "StockholdersequityDetailsTable", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "stringItemType" }, "gdyn_TacticKnowledgeIncMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tactic Knowledge Inc.", "label": "Tactic Knowledge Inc. [Member]", "terseLabel": "Tactic Knowledge Inc." } } }, "localname": "TacticKnowledgeIncMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails", "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "gdyn_TwoThousandEighteenStockPlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Two Thousand Eighteen Stock Plan [Member]", "terseLabel": "2018 Stock Plan" } } }, "localname": "TwoThousandEighteenStockPlanMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails" ], "xbrltype": "domainItemType" }, "gdyn_UnbilledReceivablesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Unbilled Receivables", "label": "Unbilled Receivables [Member]", "terseLabel": "Unbilled Receivables" } } }, "localname": "UnbilledReceivablesMember", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "gdyn_UnbilledReceivablesPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Unbilled Receivables [Policy Text Block].", "label": "Unbilled Receivables [Policy Text Block]", "terseLabel": "Unbilled receivables" } } }, "localname": "UnbilledReceivablesPolicyTextBlock", "nsuri": "http://www.gdyn.com/20210930", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "srt_MaximumMember": { "auth_ref": [ "r202", "r208", "r240", "r242", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r421", "r423", "r450", "r451" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "terseLabel": "Maximum" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "http://www.gdyn.com/role/IntangibleassetsnetDetails", "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [ "r202", "r208", "r240", "r242", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r421", "r423", "r450", "r451" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "terseLabel": "Minimum" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "http://www.gdyn.com/role/IntangibleassetsnetDetails", "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r202", "r208", "r237", "r240", "r242", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r421", "r423", "r450", "r451" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]", "terseLabel": "Statistical Measurement [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "http://www.gdyn.com/role/IntangibleassetsnetDetails", "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r202", "r208", "r237", "r240", "r242", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r421", "r423", "r450", "r451" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]", "terseLabel": "Statistical Measurement [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "http://www.gdyn.com/role/IntangibleassetsnetDetails", "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "srt_RestatementAdjustmentMember": { "auth_ref": [ "r94", "r95", "r96", "r97", "r98", "r99", "r100", "r102", "r104", "r105", "r107", "r108", "r120", "r349", "r350" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period, Adjustment [Member]", "terseLabel": "Adjustment" } } }, "localname": "RestatementAdjustmentMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "srt_RestatementAxis": { "auth_ref": [ "r1", "r94", "r95", "r96", "r97", "r98", "r99", "r100", "r101", "r102", "r104", "r105", "r106", "r107", "r108", "r109", "r120", "r162", "r163", "r280", "r300", "r348", "r349", "r350", "r351", "r424", "r425", "r426", "r427", "r428", "r429", "r430", "r431", "r432", "r433", "r460", "r461" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Axis]", "terseLabel": "Revision of Prior Period [Axis]" } } }, "localname": "RestatementAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "stringItemType" }, "srt_RestatementDomain": { "auth_ref": [ "r1", "r94", "r95", "r96", "r97", "r98", "r99", "r100", "r101", "r102", "r104", "r105", "r106", "r107", "r108", "r109", "r120", "r162", "r163", "r280", "r300", "r348", "r349", "r350", "r351", "r424", "r425", "r426", "r427", "r428", "r429", "r430", "r431", "r432", "r433", "r460", "r461" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Domain]", "terseLabel": "Revision of Prior Period [Domain]" } } }, "localname": "RestatementDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "srt_ScenarioPreviouslyReportedMember": { "auth_ref": [ "r1", "r94", "r96", "r97", "r98", "r99", "r100", "r101", "r102", "r104", "r105", "r107", "r108", "r120", "r162", "r163", "r280", "r300", "r348", "r349", "r350", "r351", "r424", "r425", "r426", "r427", "r428", "r429", "r430", "r431", "r432", "r433", "r460", "r461" ], "lang": { "en-us": { "role": { "label": "Previously Reported [Member]", "terseLabel": "Previously Reported" } } }, "localname": "ScenarioPreviouslyReportedMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "srt_SegmentGeographicalDomain": { "auth_ref": [ "r152", "r153", "r233", "r235", "r422", "r441", "r442", "r443", "r444", "r445", "r446", "r447", "r448", "r449" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]", "terseLabel": "Geographical [Domain]" } } }, "localname": "SegmentGeographicalDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IncometaxesDetails" ], "xbrltype": "domainItemType" }, "srt_StatementGeographicalAxis": { "auth_ref": [ "r152", "r153", "r233", "r235", "r422", "r435", "r441", "r442", "r443", "r444", "r445", "r446", "r447", "r448", "r449" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]", "terseLabel": "Geographical [Axis]" } } }, "localname": "StatementGeographicalAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IncometaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Accounting Policies [Abstract]", "terseLabel": "Accounting Policies [Abstract]" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r33", "r368" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts Payable, Current", "terseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableGrossCurrent": { "auth_ref": [ "r155", "r156" ], "calculation": { "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesScheduleofaccountsreceivableandallowancefordoubtfulaccountsDetails": { "order": 2.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, before Allowance for Credit Loss, Current", "terseLabel": "Trade accounts receivable" } } }, "localname": "AccountsReceivableGrossCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesScheduleofaccountsreceivableandallowancefordoubtfulaccountsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableMember": { "auth_ref": [ "r436" ], "lang": { "en-us": { "role": { "documentation": "Due from customers or clients for goods or services that have been delivered or sold.", "label": "Accounts Receivable [Member]", "terseLabel": "Accounts Receivable" } } }, "localname": "AccountsReceivableMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r6", "r19", "r155", "r156" ], "calculation": { "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesScheduleofaccountsreceivableandallowancefordoubtfulaccountsDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "terseLabel": "Accounts receivable, net of allowance of $254 and $418 as of September\u00a030, 2021 and December\u00a031, 2020, respectively", "totalLabel": "Total trade accounts receivable, net" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesScheduleofaccountsreceivableandallowancefordoubtfulaccountsDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxesCurrent": { "auth_ref": [ "r16", "r401", "r411" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.", "label": "Accrued Income Taxes, Current", "terseLabel": "Accrued income taxes" } } }, "localname": "AccruedIncomeTaxesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r35" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued Liabilities, Current", "terseLabel": "Accrued liabilities" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r32", "r179" ], "calculation": { "http://www.gdyn.com/role/PropertyandEquipmentnetDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.", "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "negatedLabel": "Less: Accumulated depreciation and amortization" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r22", "r43", "r44", "r45", "r412", "r429", "r433" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.", "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Accumulated other comprehensive income/(loss)" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r42", "r45", "r52", "r53", "r54", "r94", "r95", "r96", "r342", "r424", "r425", "r461" ], "lang": { "en-us": { "role": { "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.", "label": "AOCI Attributable to Parent [Member]", "terseLabel": "Accumulated other comprehensive income/(loss)" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdditionalPaidInCapital": { "auth_ref": [ "r20", "r280", "r368" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.", "label": "Additional Paid in Capital", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapital", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r94", "r95", "r96", "r277", "r278", "r279", "r349" ], "lang": { "en-us": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid-in Capital [Member]", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Share-based Payment Arrangement, Decrease for Tax Withholding Obligation", "terseLabel": "Tax withholding obligation" } } }, "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalOther": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of other increase (decrease) in additional paid in capital (APIC).", "label": "Adjustments to Additional Paid in Capital, Other", "terseLabel": "Consideration paid to Grid shareholders" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalOther", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement.", "label": "APIC, Share-based Payment Arrangement, Option, Increase for Cost Recognition", "terseLabel": "Stock-based compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Adjustments to reconcile net loss to net cash provided by operating activities:" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AllocatedShareBasedCompensationExpense": { "auth_ref": [ "r244", "r273", "r282" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.", "label": "Share-based Payment Arrangement, Expense", "terseLabel": "Share-based compensation expense" } } }, "localname": "AllocatedShareBasedCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "auth_ref": [ "r26", "r157", "r164" ], "calculation": { "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesScheduleofaccountsreceivableandallowancefordoubtfulaccountsDetails": { "order": 1.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.", "label": "Accounts Receivable, Allowance for Credit Loss, Current", "negatedLabel": "Allowance for doubtful accounts", "terseLabel": "Allowance for doubtful accounts" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesScheduleofaccountsreceivableandallowancefordoubtfulaccountsDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r117" ], "lang": { "en-us": { "role": { "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Antidilutive securities excluded from computation of earnings per share (in shares)" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "auth_ref": [ "r117" ], "lang": { "en-us": { "role": { "documentation": "Information by type of antidilutive security.", "label": "Antidilutive Securities [Axis]", "terseLabel": "Antidilutive Securities [Axis]" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]", "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "auth_ref": [ "r117" ], "lang": { "en-us": { "role": { "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented.", "label": "Antidilutive Securities, Name [Domain]", "terseLabel": "Antidilutive Securities, Name [Domain]" } } }, "localname": "AntidilutiveSecuritiesNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Assets": { "auth_ref": [ "r88", "r140", "r143", "r149", "r160", "r189", "r190", "r191", "r193", "r194", "r195", "r196", "r197", "r198", "r200", "r201", "r338", "r343", "r354", "r366", "r368", "r400", "r410" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "terseLabel": "Assets" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r8", "r10", "r41", "r88", "r160", "r189", "r190", "r191", "r193", "r194", "r195", "r196", "r197", "r198", "r200", "r201", "r338", "r343", "r354", "r366", "r368" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Current", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "Current assets" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AutomobilesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Vehicles that are used primarily for transporting people.", "label": "Automobiles [Member]", "terseLabel": "Machinery and automobiles" } } }, "localname": "AutomobilesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AwardTypeAxis": { "auth_ref": [ "r245", "r275" ], "lang": { "en-us": { "role": { "documentation": "Information by type of award under share-based payment arrangement.", "label": "Award Type [Axis]", "terseLabel": "Award Type [Axis]" } } }, "localname": "AwardTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by location on balance sheet (statement of financial position).", "label": "Balance Sheet Location [Axis]", "terseLabel": "Balance Sheet Location [Axis]" } } }, "localname": "BalanceSheetLocationAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationDomain": { "auth_ref": [ "r346", "r347" ], "lang": { "en-us": { "role": { "documentation": "Location in the balance sheet (statement of financial position).", "label": "Balance Sheet Location [Domain]", "terseLabel": "Balance Sheet Location [Domain]" } } }, "localname": "BalanceSheetLocationDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).", "label": "Basis of Accounting, Policy [Policy Text Block]", "terseLabel": "Basis of presentation" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "auth_ref": [ "r239", "r241" ], "lang": { "en-us": { "role": { "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.", "label": "Business Acquisition, Acquiree [Domain]", "terseLabel": "Business Acquisition, Acquiree [Domain]" } } }, "localname": "BusinessAcquisitionAcquireeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails", "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails", "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAxis": { "auth_ref": [ "r239", "r241", "r316", "r317" ], "lang": { "en-us": { "role": { "documentation": "Information by business combination or series of individually immaterial business combinations.", "label": "Business Acquisition [Axis]", "terseLabel": "Business Acquisition [Axis]" } } }, "localname": "BusinessAcquisitionAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails", "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails", "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued": { "auth_ref": [ "r331" ], "calculation": { "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "lang": { "en-us": { "role": { "documentation": "Number of shares of equity interests issued or issuable to acquire entity.", "label": "Business Acquisition, Equity Interest Issued or Issuable, Number of Shares", "terseLabel": "Business acquisition, number of shares issued (in shares)", "totalLabel": "Total shares transferred at closing (in shares)" } } }, "localname": "BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_BusinessAcquisitionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Business Acquisition [Line Items]", "terseLabel": "Business Acquisition [Line Items]" } } }, "localname": "BusinessAcquisitionLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails", "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired": { "auth_ref": [ "r312" ], "lang": { "en-us": { "role": { "documentation": "Percentage of voting equity interests acquired at the acquisition date in the business combination.", "label": "Business Acquisition, Percentage of Voting Interests Acquired", "terseLabel": "Percentage of voting interests acquired" } } }, "localname": "BusinessAcquisitionPercentageOfVotingInterestsAcquired", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted": { "auth_ref": [ "r314", "r315" ], "lang": { "en-us": { "role": { "documentation": "The pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.", "label": "Business Acquisition, Pro Forma Earnings Per Share, Diluted", "terseLabel": "Diluted loss per share (in usd per share)" } } }, "localname": "BusinessAcquisitionProFormaEarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_BusinessAcquisitionProFormaInformationTextBlock": { "auth_ref": [ "r314", "r315" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.", "label": "Business Acquisition, Pro Forma Information [Table Text Block]", "terseLabel": "Schedule of business acquisition, pro forma information" } } }, "localname": "BusinessAcquisitionProFormaInformationTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessAcquisitionSharePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Price of a single share of a number of saleable stocks paid or offered to be paid in a business combination.", "label": "Business Acquisition, Share Price", "terseLabel": "Price per share (in usd per share)", "verboseLabel": "Value per share (in usd per share)" } } }, "localname": "BusinessAcquisitionSharePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": { "auth_ref": [ "r314", "r315" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.", "label": "Business Acquisition, Pro Forma Net Income (Loss)", "terseLabel": "Net loss" } } }, "localname": "BusinessAcquisitionsProFormaNetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessAcquisitionsProFormaRevenue": { "auth_ref": [ "r314", "r315" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.", "label": "Business Acquisition, Pro Forma Revenue", "terseLabel": "Revenue" } } }, "localname": "BusinessAcquisitionsProFormaRevenue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAcquisitionRelatedCosts": { "auth_ref": [ "r311" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.", "label": "Business Combination, Acquisition Related Costs", "terseLabel": "Acquisition related costs" } } }, "localname": "BusinessCombinationAcquisitionRelatedCosts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Business Combination and Asset Acquisition [Abstract]" } } }, "localname": "BusinessCombinationAndAssetAcquisitionAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationConsiderationTransferred1": { "auth_ref": [ "r325", "r326", "r329" ], "calculation": { "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.", "label": "Business Combination, Consideration Transferred", "terseLabel": "Consideration transferred", "totalLabel": "Closing merger consideration" } } }, "localname": "BusinessCombinationConsiderationTransferred1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable": { "auth_ref": [ "r325", "r326" ], "calculation": { "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of equity interests of the acquirer, including instruments or interests issued or issuable in consideration for the business combination.", "label": "Business Combination, Consideration Transferred, Equity Interests Issued and Issuable", "terseLabel": "Total share consideration" } } }, "localname": "BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": { "auth_ref": [ "r74", "r334" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.", "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability", "terseLabel": "Change in contingent consideration" } } }, "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh": { "auth_ref": [ "r333" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "For contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be paid.", "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High", "terseLabel": "Maximum contingent consideration" } } }, "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationLiability": { "auth_ref": [ "r324", "r327", "r332" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liability recognized arising from contingent consideration in a business combination.", "label": "Business Combination, Contingent Consideration, Liability", "terseLabel": "Contingent consideration for acquisition of businesses" } } }, "localname": "BusinessCombinationContingentConsiderationLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent": { "auth_ref": [ "r324", "r328" ], "calculation": { "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_OtherLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled within one year or the normal operating cycle, if longer.", "label": "Business Combination, Contingent Consideration, Liability, Current", "terseLabel": "Contingent consideration payable" } } }, "localname": "BusinessCombinationContingentConsiderationLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "auth_ref": [ "r335" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).", "label": "Business Combination Disclosure [Text Block]", "terseLabel": "Business combination" } } }, "localname": "BusinessCombinationDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Businesscombination" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual": { "auth_ref": [ "r313" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "This element represents the amount of earnings or loss of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.", "label": "Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual", "verboseLabel": "Pro forma information, earnings of acquiree" } } }, "localname": "BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual": { "auth_ref": [ "r313" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "This element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.", "label": "Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual", "terseLabel": "Pro forma information, revenue of acquiree" } } }, "localname": "BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": { "auth_ref": [ "r319" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents", "terseLabel": "Cash and cash equivalents" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets": { "auth_ref": [ "r319" ], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": 2.0, "parentTag": "gdyn_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAcquiredIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets", "terseLabel": "Current assets (including $2,967 of cash)" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": { "auth_ref": [ "r319" ], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities", "negatedTerseLabel": "Deferred taxes" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": { "auth_ref": [ "r318", "r319" ], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": 3.0, "parentTag": "gdyn_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAcquiredIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles", "terseLabel": "Total identified intangible assets", "verboseLabel": "Identified intangible assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities": { "auth_ref": [ "r319" ], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Liabilities", "negatedTotalLabel": "Total liabilities assumed" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": { "auth_ref": [ "r318", "r319" ], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": 4.0, "parentTag": "gdyn_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAcquiredIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment", "terseLabel": "Property, plant and equipment" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "auth_ref": [ "r319" ], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.", "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net", "totalLabel": "Purchase price allocation" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r5", "r30", "r77" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.", "label": "Cash and Cash Equivalents, at Carrying Value", "terseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "auth_ref": [ "r13", "r78" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.", "label": "Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "auth_ref": [ "r71", "r77", "r83" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "periodEndLabel": "Cash and cash equivalents, end of period", "periodStartLabel": "Cash and cash equivalents, beginning of period" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r71", "r355" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "totalLabel": "Net increase in cash and cash equivalents" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1": { "auth_ref": [ "r221" ], "lang": { "en-us": { "role": { "documentation": "Exercise price per share or per unit of warrants or rights outstanding.", "label": "Class of Warrant or Right, Exercise Price of Warrants or Rights", "verboseLabel": "Exercise price (in dollars per share)" } } }, "localname": "ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BackgroundandnatureofoperationsDetails", "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ClassOfWarrantOrRightOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of warrants or rights outstanding.", "label": "Class of Warrant or Right, Outstanding", "terseLabel": "Warrants outstanding (in shares)" } } }, "localname": "ClassOfWarrantOrRightOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Abstract]", "terseLabel": "Commitments and Contingencies Disclosure [Abstract]" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r184", "r185", "r186", "r187", "r437" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Commitments and contingencies" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Commitmentsandcontingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r94", "r95", "r349" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]", "terseLabel": "Common Stock" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r18" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share", "terseLabel": "Common stock, par value (in dollars per share)" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r18" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized (in shares)" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r18" ], "lang": { "en-us": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common Stock, Shares, Issued", "terseLabel": "Common stock, shares issued (in shares)" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r18", "r220" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common Stock, Shares, Outstanding", "terseLabel": "Common stock, shares outstanding (in shares)" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r18", "r368" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common Stock, Value, Issued", "terseLabel": "Common stock, $0.0001 par value; 110,000,000 shares authorized; 65,121,241 and 50,878,780 issued and outstanding as of September\u00a030, 2021 and December\u00a031, 2020, respectively" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r47", "r49", "r50", "r57", "r405", "r417" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "Comprehensive loss" } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComputerEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.", "label": "Computer Equipment [Member]", "terseLabel": "Computers and equipment" } } }, "localname": "ComputerEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "auth_ref": [ "r131", "r132", "r154", "r352", "r353", "r436" ], "lang": { "en-us": { "role": { "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.", "label": "Concentration Risk Benchmark [Domain]", "terseLabel": "Concentration Risk Benchmark [Domain]" } } }, "localname": "ConcentrationRiskBenchmarkDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "auth_ref": [ "r131", "r132", "r154", "r352", "r353", "r434", "r436" ], "lang": { "en-us": { "role": { "documentation": "Information by benchmark of concentration risk.", "label": "Concentration Risk Benchmark [Axis]", "terseLabel": "Concentration Risk Benchmark [Axis]" } } }, "localname": "ConcentrationRiskByBenchmarkAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskByTypeAxis": { "auth_ref": [ "r131", "r132", "r154", "r352", "r353", "r434", "r436" ], "lang": { "en-us": { "role": { "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.", "label": "Concentration Risk Type [Axis]", "terseLabel": "Concentration Risk Type [Axis]" } } }, "localname": "ConcentrationRiskByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskCreditRisk": { "auth_ref": [ "r127", "r409" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for credit risk.", "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]", "terseLabel": "Concentrations of credit risk and significant customers" } } }, "localname": "ConcentrationRiskCreditRisk", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ConcentrationRiskLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Concentration Risk [Line Items]", "terseLabel": "Concentration Risk [Line Items]" } } }, "localname": "ConcentrationRiskLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskTypeDomain": { "auth_ref": [ "r131", "r132", "r154", "r352", "r353", "r436" ], "lang": { "en-us": { "role": { "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.", "label": "Concentration Risk Type [Domain]", "terseLabel": "Concentration Risk Type [Domain]" } } }, "localname": "ConcentrationRiskTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConsolidationPolicyTextBlock": { "auth_ref": [ "r84", "r340" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.", "label": "Consolidation, Policy [Policy Text Block]", "terseLabel": "Principles of consolidation" } } }, "localname": "ConsolidationPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerRefundLiabilityCurrent": { "auth_ref": [ "r234" ], "calculation": { "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_OtherLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liability for consideration received or receivable from customer which is not included in transaction price, when consideration is expected to be refunded to customer, classified as current.", "label": "Contract with Customer, Refund Liability, Current", "terseLabel": "Customer deposits" } } }, "localname": "ContractWithCustomerRefundLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ConversionOfStockAmountConverted1": { "auth_ref": [ "r80", "r81", "r82" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The value of the stock converted in a noncash (or part noncash) transaction. Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.", "label": "Conversion of Stock, Amount Converted", "terseLabel": "Conversion of preferred stock to common stock" } } }, "localname": "ConversionOfStockAmountConverted1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ConvertiblePreferredStockMember": { "auth_ref": [ "r205", "r206", "r210" ], "lang": { "en-us": { "role": { "documentation": "Preferred stock that may be exchanged into common shares or other types of securities at the owner's option.", "label": "Convertible Preferred Stock [Member]", "terseLabel": "Convertible preferred stock" } } }, "localname": "ConvertiblePreferredStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CostOfRevenue": { "auth_ref": [ "r62", "r88", "r160", "r189", "r190", "r191", "r194", "r195", "r196", "r197", "r198", "r200", "r201", "r354" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.", "label": "Cost of Revenue", "terseLabel": "Cost of revenue" } } }, "localname": "CostOfRevenue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfSalesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing cost of sales.", "label": "Cost of Sales [Member]", "terseLabel": "Cost of revenue" } } }, "localname": "CostOfSalesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerConcentrationRiskMember": { "auth_ref": [ "r130", "r154" ], "lang": { "en-us": { "role": { "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.", "label": "Customer Concentration Risk [Member]", "terseLabel": "Customer Concentration Risk" } } }, "localname": "CustomerConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerRelationshipsMember": { "auth_ref": [ "r323" ], "lang": { "en-us": { "role": { "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.", "label": "Customer Relationships [Member]", "terseLabel": "Customer relationships" } } }, "localname": "CustomerRelationshipsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r287", "r288" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "Deferred Income Tax Assets, Net", "terseLabel": "Deferred tax assets" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r75", "r89", "r297", "r303", "r304", "r305" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Income Tax Expense (Benefit)", "verboseLabel": "Deferred income taxes" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "auth_ref": [ "r287", "r288" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "Deferred Income Tax Liabilities, Net", "terseLabel": "Deferred tax liabilities" } } }, "localname": "DeferredIncomeTaxLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationAndAmortization": { "auth_ref": [ "r75", "r177" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", "label": "Depreciation, Depletion and Amortization, Nonproduction", "terseLabel": "Depreciation and amortization" } } }, "localname": "DepreciationAndAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r283" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for share-based payment arrangement.", "label": "Share-based Payment Arrangement [Text Block]", "terseLabel": "Stock-based compensation" } } }, "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Payment Arrangement [Abstract]", "terseLabel": "Share-based Payment Arrangement [Abstract]" } } }, "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_DueToRelatedPartiesCurrent": { "auth_ref": [ "r33", "r92", "r192", "r194", "r195", "r199", "r200", "r201", "r364" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of obligations due all related parties. For classified balance sheets, represents the current portion of such liabilities (due within one year or within the normal operating cycle if longer).", "label": "Due to Related Parties, Current", "terseLabel": "Due to related parties" } } }, "localname": "DueToRelatedPartiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Abstract]", "terseLabel": "Loss per share" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r58", "r99", "r100", "r102", "r103", "r104", "r110", "r112", "r114", "r115", "r116", "r120", "r121", "r350", "r351", "r406", "r418" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Earnings Per Share, Basic", "terseLabel": "Basic (in dollars per share)" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareBasicAndDilutedAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic and Diluted [Abstract]", "terseLabel": "Net income/(loss) per share" } } }, "localname": "EarningsPerShareBasicAndDilutedAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r58", "r99", "r100", "r102", "r103", "r104", "r112", "r114", "r115", "r116", "r120", "r121", "r350", "r351", "r406", "r418" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Earnings Per Share, Diluted", "terseLabel": "Diluted (in dollars per share)" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r117", "r118", "r119", "r122" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]", "terseLabel": "Earnings per share" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Earningspershare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "auth_ref": [ "r355" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 4.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "terseLabel": "Effect of exchange rate changes on cash and cash equivalents" } } }, "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "auth_ref": [ "r290" ], "lang": { "en-us": { "role": { "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Effective Income Tax Rate Reconciliation, Percent", "terseLabel": "Effective tax rate, percentage" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IncometaxesDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "auth_ref": [ "r35" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Employee-related Liabilities, Current", "terseLabel": "Accrued compensation and benefits" } } }, "localname": "EmployeeRelatedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]", "terseLabel": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]" } } }, "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "auth_ref": [ "r274" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.", "label": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount", "terseLabel": "Unrecognized stock-based compensation expense" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "auth_ref": [ "r274" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition", "terseLabel": "Period for recognition" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions": { "auth_ref": [ "r274" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options.", "label": "Share-based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount", "terseLabel": "Unrecognized compensation expense, excluding options" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": { "auth_ref": [ "r274" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost to be recognized for option under share-based payment arrangement.", "label": "Share-based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount", "terseLabel": "Unrecognized compensation expense, options" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeStockOptionMember": { "auth_ref": [ "r271" ], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time.", "label": "Share-based Payment Arrangement, Option [Member]", "terseLabel": "Stock options to purchase common stock", "verboseLabel": "Stock Options" } } }, "localname": "EmployeeStockOptionMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails", "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r0", "r52", "r53", "r54", "r94", "r95", "r96", "r98", "r105", "r108", "r123", "r161", "r220", "r222", "r277", "r278", "r279", "r299", "r300", "r349", "r356", "r357", "r358", "r359", "r360", "r361", "r424", "r425", "r426", "r461" ], "lang": { "en-us": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]", "terseLabel": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueAdjustmentOfWarrants": { "auth_ref": [ "r75", "r204" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (income) related to adjustment to fair value of warrant liability.", "label": "Fair Value Adjustment of Warrants", "terseLabel": "Change in fair value of warrants" } } }, "localname": "FairValueAdjustmentOfWarrants", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Finite-Lived Intangible Asset, Useful Life", "netLabel": "Intangible assets useful life", "terseLabel": "Useful Life", "verboseLabel": "Estimated Useful Life (In Years)" } } }, "localname": "FiniteLivedIntangibleAssetUsefulLife", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "durationItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "auth_ref": [ "r174" ], "calculation": { "http://www.gdyn.com/role/IntangibleassetsnetDetails": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "negatedTerseLabel": "Less: Accumulated amortization" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r171", "r172", "r174", "r175", "r384", "r385" ], "lang": { "en-us": { "role": { "documentation": "Information by major type or class of finite-lived intangible assets.", "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]" } } }, "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "auth_ref": [ "r174", "r385" ], "calculation": { "http://www.gdyn.com/role/IntangibleassetsnetDetails": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Intangible assets, gross" } } }, "localname": "FiniteLivedIntangibleAssetsGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Finite-Lived Intangible Assets [Line Items]", "terseLabel": "Finite-Lived Intangible Assets [Line Items]" } } }, "localname": "FiniteLivedIntangibleAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r171", "r173" ], "lang": { "en-us": { "role": { "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r174", "r384" ], "calculation": { "http://www.gdyn.com/role/IntangibleassetsnetDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Net", "terseLabel": "Intangible assets, net", "totalLabel": "Intangible assets, net" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IntangibleassetsnetDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_FurnitureAndFixturesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.", "label": "Furniture and Fixtures [Member]", "terseLabel": "Furniture and fixtures" } } }, "localname": "FurnitureAndFixturesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_GeneralAndAdministrativeExpense": { "auth_ref": [ "r63" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 3.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.", "label": "General and Administrative Expense", "terseLabel": "General and administrative" } } }, "localname": "GeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_GeneralAndAdministrativeExpenseMember": { "auth_ref": [ "r59" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing general and administrative expense.", "label": "General and Administrative Expense [Member]", "terseLabel": "General and administrative" } } }, "localname": "GeneralAndAdministrativeExpenseMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r168", "r169", "r368", "r399" ], "calculation": { "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails": { "order": 1.0, "parentTag": "gdyn_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAcquiredIncludingGoodwill", "weight": 1.0 }, "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill", "terseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Abstract]", "terseLabel": "Goodwill and Intangible Assets Disclosure [Abstract]" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": { "auth_ref": [ "r170" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.", "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]", "terseLabel": "Goodwill" } } }, "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r61", "r88", "r140", "r142", "r145", "r148", "r150", "r160", "r189", "r190", "r191", "r194", "r195", "r196", "r197", "r198", "r200", "r201", "r354" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "Gross Profit", "totalLabel": "Gross profit" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r55", "r140", "r142", "r145", "r148", "r150", "r398", "r403", "r407", "r419" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "totalLabel": "Income/(loss) before income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Statement [Abstract]", "terseLabel": "Income Statement [Abstract]" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r181", "r183" ], "lang": { "en-us": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]", "terseLabel": "Income Statement Location [Axis]" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [ "r183" ], "lang": { "en-us": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]", "terseLabel": "Income Statement Location [Domain]" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Abstract]", "terseLabel": "Income Tax Disclosure [Abstract]" } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r90", "r291", "r293", "r296", "r301", "r306", "r308", "r309", "r310" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Tax Disclosure [Text Block]", "terseLabel": "Income taxes" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Incometaxes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExaminationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Income Tax Examination [Line Items]", "terseLabel": "Income Tax Examination [Line Items]" } } }, "localname": "IncomeTaxExaminationLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IncometaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxExaminationTable": { "auth_ref": [ "r292" ], "lang": { "en-us": { "role": { "documentation": "A summary of income tax examinations that an enterprise is currently subject to or that have been completed in the current period typically including a description of the examination, the jurisdiction conducting the examination, the tax year(s) under examination, the likelihood of an unfavorable settlement, the range of possible losses, the liability recorded, the Increase or Decrease in the liability from the prior period, and any penalties and interest that have been incurred or accrued.", "label": "Income Tax Examination [Table]", "terseLabel": "Income Tax Examination [Table]" } } }, "localname": "IncomeTaxExaminationTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IncometaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r91", "r107", "r108", "r139", "r289", "r302", "r307", "r420" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income Tax Expense (Benefit)", "terseLabel": "Provision/(benefit) for income taxes", "verboseLabel": "Income tax expense (benefit)" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IncometaxesDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxPolicyTextBlock": { "auth_ref": [ "r51", "r285", "r286", "r293", "r294", "r295", "r298" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.", "label": "Income Tax, Policy [Policy Text Block]", "terseLabel": "Income taxes" } } }, "localname": "IncomeTaxPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxesPaid": { "auth_ref": [ "r72", "r79" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income.", "label": "Income Taxes Paid", "terseLabel": "Cash paid for income taxes" } } }, "localname": "IncomeTaxesPaid", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", "label": "Increase (Decrease) in Accounts Payable", "terseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Accounts receivable" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.", "label": "Increase (Decrease) in Accrued Liabilities", "terseLabel": "Accrued liabilities" } } }, "localname": "IncreaseDecreaseInAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccruedTaxesPayable": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period of all taxes owed but not paid, including income, property and other taxes.", "label": "Increase (Decrease) in Accrued Taxes Payable", "terseLabel": "Accrued income taxes" } } }, "localname": "IncreaseDecreaseInAccruedTaxesPayable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.", "label": "Increase (Decrease) in Contract with Customer, Asset", "negatedTerseLabel": "Unbilled receivables" } } }, "localname": "IncreaseDecreaseInContractWithCustomerAsset", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInDeferredCompensation": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the obligation created by employee agreements whereby earned compensation will be paid in the future.", "label": "Increase (Decrease) in Deferred Compensation", "terseLabel": "Accrued compensation and benefits" } } }, "localname": "IncreaseDecreaseInDeferredCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Changes in assets and liabilities:" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOtherCurrentLiabilities": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in current liabilities classified as other.", "label": "Increase (Decrease) in Other Current Liabilities", "terseLabel": "Other current liabilities" } } }, "localname": "IncreaseDecreaseInOtherCurrentLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 15.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedLabel": "Prepaid expenses and other current assets" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidTaxes": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) of consideration paid in advance for income and other taxes that provide economic benefits in future periods.", "label": "Increase (Decrease) in Prepaid Taxes", "negatedLabel": "Prepaid income taxes" } } }, "localname": "IncreaseDecreaseInPrepaidTaxes", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]" } } }, "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_IntangibleAssetsDisclosureTextBlock": { "auth_ref": [ "r176" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for all or part of the information related to intangible assets.", "label": "Intangible Assets Disclosure [Text Block]", "terseLabel": "Intangible assets, net" } } }, "localname": "IntangibleAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Intangibleassetsnet" ], "xbrltype": "textBlockItemType" }, "us-gaap_IntangibleAssetsFiniteLivedPolicy": { "auth_ref": [ "r85", "r173", "r380", "r381", "r382", "r384" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such assets.", "label": "Intangible Assets, Finite-Lived, Policy [Policy Text Block]", "terseLabel": "Intangible assets" } } }, "localname": "IntangibleAssetsFiniteLivedPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseholdImprovementsMember": { "auth_ref": [ "r178" ], "lang": { "en-us": { "role": { "documentation": "Additions or improvements to assets held under a lease arrangement.", "label": "Leasehold Improvements [Member]", "terseLabel": "Leasehold improvements" } } }, "localname": "LeaseholdImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r34", "r88", "r144", "r160", "r189", "r190", "r191", "r194", "r195", "r196", "r197", "r198", "r200", "r201", "r339", "r343", "r344", "r354", "r366", "r367" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r25", "r88", "r160", "r354", "r368", "r402", "r414" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders\u2019 equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "Liabilities and equity" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r37", "r88", "r160", "r189", "r190", "r191", "r194", "r195", "r196", "r197", "r198", "r200", "r201", "r339", "r343", "r344", "r354", "r366", "r367", "r368" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "Liabilities, Current", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "Current liabilities" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock": { "auth_ref": [ "r3", "r335" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for business combinations, including leverage buyout transactions (as applicable), and divestitures. This may include a description of a business combination or divestiture (or series of individually immaterial business combinations or divestitures) completed during the period, including background, timing, and assets and liabilities recognized and reclassified or sold. This element does not include fixed asset sales and plant closings.", "label": "Mergers, Acquisitions and Dispositions Disclosures [Text Block]", "terseLabel": "Acquisition of Tacit Knowledge Inc." } } }, "localname": "MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeInc" ], "xbrltype": "textBlockItemType" }, "us-gaap_NatureOfOperations": { "auth_ref": [ "r124", "r136" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.", "label": "Nature of Operations [Text Block]", "terseLabel": "Background and nature of operations" } } }, "localname": "NatureOfOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Backgroundandnatureofoperations" ], "xbrltype": "textBlockItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r71" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 3.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash provided by financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]", "terseLabel": "Cash flows from financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r71" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]", "terseLabel": "Cash flows from investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r71", "r73", "r76" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Net cash provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Cash flows from operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r2", "r46", "r48", "r54", "r56", "r76", "r88", "r97", "r99", "r100", "r102", "r103", "r107", "r108", "r113", "r140", "r142", "r145", "r148", "r150", "r160", "r189", "r190", "r191", "r194", "r195", "r196", "r197", "r198", "r200", "r201", "r351", "r354", "r404", "r416" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net Income (Loss) Attributable to Parent", "terseLabel": "Net loss", "totalLabel": "Net loss", "verboseLabel": "Net income" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.", "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Recently adopted accounting pronouncements and recently issued accounting pronouncements" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Noncash Investing and Financing Items [Abstract]", "terseLabel": "Supplemental disclosure of non-cash activities" } } }, "localname": "NoncashInvestingAndFinancingItemsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NoncompeteAgreementsMember": { "auth_ref": [ "r322" ], "lang": { "en-us": { "role": { "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.", "label": "Noncompete Agreements [Member]", "terseLabel": "Non-compete agreements" } } }, "localname": "NoncompeteAgreementsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NumberOfReportingUnits": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of reporting units tested for impairment of goodwill. A reporting unit is an operating segment or one level below an operating segment.", "label": "Number of Reporting Units", "terseLabel": "Number of reporting units" } } }, "localname": "NumberOfReportingUnits", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "integerItemType" }, "us-gaap_OperatingExpenses": { "auth_ref": [], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.", "label": "Operating Expenses", "totalLabel": "Total operating expenses" } } }, "localname": "OperatingExpenses", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingExpensesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Operating Expenses [Abstract]", "terseLabel": "Operating expenses" } } }, "localname": "OperatingExpensesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r140", "r142", "r145", "r148", "r150" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "totalLabel": "Income/(loss) from operations" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r4", "r93", "r136", "r345" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the organization, consolidation and basis of presentation of financial statements disclosure, and significant accounting policies of the reporting entity. May be provided in more than one note to the financial statements, as long as users are provided with an understanding of (1) the significant judgments and assumptions made by an enterprise in determining whether it must consolidate a VIE and/or disclose information about its involvement with a VIE, (2) the nature of restrictions on a consolidated VIE's assets reported by an enterprise in its statement of financial position, including the carrying amounts of such assets, (3) the nature of, and changes in, the risks associated with an enterprise's involvement with the VIE, and (4) how an enterprise's involvement with the VIE affects the enterprise's financial position, financial performance, and cash flows. Describes procedure if disclosures are provided in more than one note to the financial statements.", "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure and Significant Accounting Policies [Text Block]", "terseLabel": "Basis of presentation and summary of significant accounting policies" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Basisofpresentationandsummaryofsignificantaccountingpolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r336", "r337", "r341" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent", "terseLabel": "Foreign currency translation adjustments, net of tax" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherCurrentLiabilitiesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing other current liabilities.", "label": "Other Current Liabilities [Member]", "terseLabel": "Other Current Liabilities" } } }, "localname": "OtherCurrentLiabilitiesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherCurrentLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of other current liabilities.", "label": "Other Current Liabilities [Table Text Block]", "terseLabel": "Schedule of other current liabilities" } } }, "localname": "OtherCurrentLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherLiabilitiesCurrent": { "auth_ref": [ "r11", "r12", "r35", "r368" ], "calculation": { "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.", "label": "Other Liabilities, Current", "terseLabel": "Other current liabilities", "totalLabel": "Total other current liabilities" } } }, "localname": "OtherLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other Liabilities, Current [Abstract]", "terseLabel": "Other Liabilities, Current [Abstract]" } } }, "localname": "OtherLiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_OtherLiabilitiesDisclosureTextBlock": { "auth_ref": [ "r36" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for other liabilities.", "label": "Other Liabilities Disclosure [Text Block]", "terseLabel": "Other current liabilities" } } }, "localname": "OtherLiabilitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Othercurrentliabilities" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r64" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.", "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other income/(expenses), net" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNonoperatingIncomeExpenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing other nonoperating income (expense).", "label": "Other Nonoperating Income (Expense) [Member]", "terseLabel": "Other Income (Expense)" } } }, "localname": "OtherNonoperatingIncomeExpenseMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherSundryLiabilitiesCurrent": { "auth_ref": [ "r35", "r188" ], "calculation": { "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_OtherLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Obligations not otherwise itemized or categorized in the footnotes to the financial statements that are due within one year or operating cycle, if longer, from the balance sheet date.", "label": "Other Sundry Liabilities, Current", "terseLabel": "Other liabilities" } } }, "localname": "OtherSundryLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/OthercurrentliabilitiesScheduleofothercurrentliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "auth_ref": [ "r69" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow to reacquire common stock during the period.", "label": "Payments for Repurchase of Common Stock", "negatedTerseLabel": "GDI shares redeemed for cash" } } }, "localname": "PaymentsForRepurchaseOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfStockIssuanceCosts": { "auth_ref": [ "r70" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security.", "label": "Payments of Stock Issuance Costs", "negatedTerseLabel": "Payments for professional fees related to issuance of common stock from July 2021 Offering", "terseLabel": "Issuance of common stock, transaction costs" } } }, "localname": "PaymentsOfStockIssuanceCosts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquityParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [ "r69" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Payment, Tax Withholding, Share-based Payment Arrangement", "negatedTerseLabel": "Payments of tax obligations resulted from net share settlement of vested stock awards" } } }, "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesGross": { "auth_ref": [ "r65", "r330" ], "calculation": { "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.", "label": "Payments to Acquire Businesses, Gross", "terseLabel": "Payments to acquire business", "verboseLabel": "Plus: Cash transferred to GDI stockholders" } } }, "localname": "PaymentsToAcquireBusinessesGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "auth_ref": [ "r65" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", "label": "Payments to Acquire Businesses, Net of Cash Acquired", "negatedTerseLabel": "Acquisition of Tacit, net of cash acquired (Note 4)" } } }, "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r66" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Purchase of property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PerformanceSharesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement awarded for meeting performance target.", "label": "Performance Shares [Member]", "terseLabel": "Performance stock units" } } }, "localname": "PerformanceSharesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails", "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PlanNameAxis": { "auth_ref": [ "r245", "r275" ], "lang": { "en-us": { "role": { "documentation": "Information by plan name for share-based payment arrangement.", "label": "Plan Name [Axis]", "terseLabel": "Plan Name [Axis]" } } }, "localname": "PlanNameAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PlanNameDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Plan name for share-based payment arrangement.", "label": "Plan Name [Domain]", "terseLabel": "Plan Name [Domain]" } } }, "localname": "PlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PreferredStockConvertibleConversionRatio": { "auth_ref": [ "r207" ], "lang": { "en-us": { "role": { "documentation": "Number of common shares issuable upon conversion for each share of preferred stock to be converted.", "label": "Preferred Stock, Convertible, Conversion Ratio", "terseLabel": "Preferred stock, conversion ratio" } } }, "localname": "PreferredStockConvertibleConversionRatio", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "pureItemType" }, "us-gaap_PreferredStockMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Preferred shares may provide a preferential dividend to the dividend on common stock and may take precedence over common stock in the event of a liquidation. Preferred shares typically represent an ownership interest in the company.", "label": "Preferred Stock [Member]", "terseLabel": "Convertible Preferred Stock" } } }, "localname": "PreferredStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "auth_ref": [ "r17", "r205" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.", "label": "Preferred Stock, Par or Stated Value Per Share", "terseLabel": "Preferred shares, par value (in dollars per share)" } } }, "localname": "PreferredStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_PreferredStockSharesOutstanding": { "auth_ref": [ "r17" ], "lang": { "en-us": { "role": { "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.", "label": "Preferred Stock, Shares Outstanding", "terseLabel": "Preferred stock shares, outstanding (in shares)" } } }, "localname": "PreferredStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "auth_ref": [ "r8", "r28", "r29" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.", "label": "Prepaid Expense and Other Assets, Current", "terseLabel": "Prepaid expenses and other current assets" } } }, "localname": "PrepaidExpenseAndOtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidTaxes": { "auth_ref": [ "r7", "r9", "r166", "r167" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", "label": "Prepaid Taxes", "terseLabel": "Prepaid income taxes" } } }, "localname": "PrepaidTaxes", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "auth_ref": [ "r67" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from the additional capital contribution to the entity.", "label": "Proceeds from Issuance of Common Stock", "terseLabel": "Proceeds related to issuance of Common Stock from July 2021 Offering" } } }, "localname": "ProceedsFromIssuanceOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromRelatedPartyDebt": { "auth_ref": [ "r68" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from a long-term borrowing made from related parties where one party can exercise control or significant influence over another party; including affiliates, owners or officers and their immediate families, pension trusts, and so forth. Alternate caption: Proceeds from Advances from Affiliates.", "label": "Proceeds from Related Party Debt", "terseLabel": "Cash received from ChaSerg" } } }, "localname": "ProceedsFromRelatedPartyDebt", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockOptionsExercised": { "auth_ref": [ "r67", "r276" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.", "label": "Proceeds from Stock Options Exercised", "terseLabel": "Proceeds from exercises of stock options, net of shares withheld for taxes" } } }, "localname": "ProceedsFromStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromWarrantExercises": { "auth_ref": [ "r67" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the amount received from holders exercising their stock warrants.", "label": "Proceeds from Warrant Exercises", "terseLabel": "Proceeds from exercise of public warrants" } } }, "localname": "ProceedsFromWarrantExercises", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Abstract]", "terseLabel": "Property, Plant and Equipment [Abstract]" } } }, "localname": "PropertyPlantAndEquipmentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r32", "r180" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.", "label": "Long-Lived Tangible Asset [Axis]", "terseLabel": "Long-Lived Tangible Asset [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r182", "r438", "r439", "r440" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment Disclosure [Text Block]", "terseLabel": "Property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Propertyandequipmentnet" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r31", "r178" ], "calculation": { "http://www.gdyn.com/role/PropertyandEquipmentnetDetails": { "order": 2.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Gross", "terseLabel": "Property and equipment, gross" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Property, Plant and Equipment [Line Items]", "terseLabel": "Property, Plant and Equipment [Line Items]" } } }, "localname": "PropertyPlantAndEquipmentLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r14", "r15", "r180", "r368", "r408", "r415" ], "calculation": { "http://www.gdyn.com/role/PropertyandEquipmentnetDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Net", "terseLabel": "Property and equipment, net", "totalLabel": "Property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r14", "r180" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Schedule of property and equipment" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandequipmentnetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r14", "r178" ], "lang": { "en-us": { "role": { "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.", "label": "Long-Lived Tangible Asset [Domain]", "terseLabel": "Long-Lived Tangible Asset [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PropertyPlantAndEquipmentUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.", "label": "Property, Plant and Equipment, Useful Life", "terseLabel": "Estimated Useful Life (In Years)" } } }, "localname": "PropertyPlantAndEquipmentUsefulLife", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r60", "r165" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Accounts Receivable, Credit Loss Expense (Reversal)", "terseLabel": "Bad debt" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": { "auth_ref": [ "r27", "r158" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.", "label": "Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]", "terseLabel": "Accounts receivable and allowance for doubtful accounts" } } }, "localname": "ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RelatedPartyDomain": { "auth_ref": [ "r238", "r363", "r364" ], "lang": { "en-us": { "role": { "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.", "label": "Related Party [Domain]", "terseLabel": "Related Party [Domain]" } } }, "localname": "RelatedPartyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "auth_ref": [ "r238", "r363", "r365", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397" ], "lang": { "en-us": { "role": { "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.", "label": "Related Party [Axis]", "terseLabel": "Related Party [Axis]" } } }, "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r284", "r379", "r452" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.", "label": "Research and Development Expense", "terseLabel": "Engineering, research, and development" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included.", "label": "Research and Development Expense [Member]", "terseLabel": "Engineering, research, and development" } } }, "localname": "ResearchAndDevelopmentExpenseMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number, after shares used to satisfy grantee's tax withholding obligation for award under share-based payment arrangement, of restricted shares issued. Excludes cash used to satisfy grantee's tax withholding obligation.", "label": "Restricted Stock, Shares Issued Net of Shares for Tax Withholdings", "terseLabel": "Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards (in shares)" } } }, "localname": "RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_RestrictedStockUnitsRSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.", "label": "Restricted Stock Units (RSUs) [Member]", "terseLabel": "Restricted stock units" } } }, "localname": "RestrictedStockUnitsRSUMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails", "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value, after value of shares used to satisfy grantee's tax withholding obligation for award under share-based payment arrangement, of restricted shares issued. Excludes cash used to satisfy grantee's tax withholding obligation.", "label": "Restricted Stock, Value, Shares Issued Net of Tax Withholdings", "verboseLabel": "Issuance of shares and payments of tax obligations resulted from net share settlement of vested stock awards" } } }, "localname": "RestrictedStockValueSharesIssuedNetOfTaxWithholdings", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r21", "r222", "r280", "r368", "r413", "r428", "r433" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings (Accumulated Deficit)", "terseLabel": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r0", "r94", "r95", "r96", "r98", "r105", "r108", "r161", "r277", "r278", "r279", "r299", "r300", "r349", "r424", "r426" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]", "terseLabel": "Retained earnings" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "auth_ref": [ "r137", "r138", "r141", "r146", "r147", "r151", "r152", "r154", "r232", "r233", "r383" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_GrossProfit", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.", "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "terseLabel": "Revenue" } } }, "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": { "auth_ref": [ "r86", "r224", "r225", "r226", "r227", "r228", "r229", "r230", "r231", "r236" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue from contract with customer.", "label": "Revenue from Contract with Customer [Policy Text Block]", "terseLabel": "Revenue recognition" } } }, "localname": "RevenueFromContractWithCustomerPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SaleOfStockConsiderationReceivedOnTransaction": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Cash received on stock transaction after deduction of issuance costs.", "label": "Sale of Stock, Consideration Received on Transaction", "terseLabel": "Sale of stock, consideration received on transaction" } } }, "localname": "SaleOfStockConsiderationReceivedOnTransaction", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SaleOfStockNameOfTransactionDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement.", "label": "Sale of Stock [Domain]", "terseLabel": "Sale of Stock [Domain]" } } }, "localname": "SaleOfStockNameOfTransactionDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SaleOfStockNumberOfSharesIssuedInTransaction": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of shares issued or sold by the subsidiary or equity method investee per stock transaction.", "label": "Sale of Stock, Number of Shares Issued in Transaction", "terseLabel": "Sale of stock, number of shares issued in transaction (in shares)" } } }, "localname": "SaleOfStockNumberOfSharesIssuedInTransaction", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SaleOfStockPricePerShare": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Per share amount received by subsidiary or equity investee for each share of common stock issued or sold in the stock transaction.", "label": "Sale of Stock, Price Per Share", "terseLabel": "Sale of stock, price per share (in dollars per share)" } } }, "localname": "SaleOfStockPricePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SalesRevenueNetMember": { "auth_ref": [ "r131", "r154" ], "lang": { "en-us": { "role": { "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.", "label": "Revenue Benchmark [Member]", "terseLabel": "Sales" } } }, "localname": "SalesRevenueNetMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": { "auth_ref": [ "r40" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.", "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]", "terseLabel": "Schedule of accounts receivable and allowance for doubtful accounts" } } }, "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": { "auth_ref": [ "r117" ], "lang": { "en-us": { "role": { "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities.", "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]", "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]" } } }, "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "auth_ref": [ "r117" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities.", "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]", "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share" } } }, "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "auth_ref": [ "r316", "r317" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.", "label": "Schedule of Business Acquisitions, by Acquisition [Table]", "terseLabel": "Schedule of Business Acquisitions, by Acquisition [Table]" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncNarrativeDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncProformainformationDetails", "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/BusinesscombinationScheduleofconsiderationforbusinesscombinationDetails", "http://www.gdyn.com/role/OthercurrentliabilitiesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": { "auth_ref": [ "r316", "r317" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts.", "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]", "terseLabel": "Schedule of business acquisitions, by acquisition" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r116" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.", "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Schedule of Computation of Basic and Diluted Earnings Per Share" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": { "auth_ref": [ "r244", "r272", "r282" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements.", "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table]", "terseLabel": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table]" } } }, "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock": { "auth_ref": [ "r171" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of finite-lived intangible assets acquired as part of a business combination or through an asset purchase, by major class and in total, including the value of the asset acquired, any significant residual value (the expected value of the asset at the end of its useful life) and the weighted-average amortization period.", "label": "Schedule of Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]", "terseLabel": "Schedule of business acquisition, finite-lived intangibles" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": { "auth_ref": [ "r171", "r173", "r384" ], "lang": { "en-us": { "role": { "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Schedule of Finite-Lived Intangible Assets [Table]", "terseLabel": "Schedule of Finite-Lived Intangible Assets [Table]" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "auth_ref": [ "r171", "r173" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.", "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Schedule of Intangible assets" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IntangibleassetsnetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "auth_ref": [ "r32", "r180" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table]", "terseLabel": "Property, Plant and Equipment [Table]" } } }, "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": { "auth_ref": [ "r320" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.", "label": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]", "terseLabel": "Schedule of business acquisition, assets acquired and liabilities assumed" } } }, "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock": { "auth_ref": [ "r258", "r262", "r264" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of activity for award under share-based payment arrangement. Includes, but is not limited to, outstanding award at beginning and end of year, granted, exercised, forfeited, and weighted-average grant date fair value.", "label": "Share-based Payment Arrangement, Activity [Table Text Block]", "terseLabel": "Schedule of share-based payment arrangement activity" } } }, "localname": "ScheduleOfShareBasedCompensationActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "auth_ref": [ "r245", "r275" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about share-based payment arrangement.", "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]", "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]" } } }, "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock": { "auth_ref": [ "r271" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of employee stock purchase plan activity.", "label": "Schedule of Share-based Compensation, Employee Stock Purchase Plan, Activity [Table Text Block]", "terseLabel": "Schedule of employee stock-based compensation recognized" } } }, "localname": "ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": { "auth_ref": [ "r251" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.", "label": "Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]", "terseLabel": "Schedule of restricted stock unit activity" } } }, "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "auth_ref": [ "r251", "r262", "r264" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.", "label": "Share-based Payment Arrangement, Option, Activity [Table Text Block]", "terseLabel": "Schedule of option activity" } } }, "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": { "auth_ref": [ "r266" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.", "label": "Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]", "terseLabel": "Schedule of estimated grant using the black-scholes" } } }, "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SellingAndMarketingExpense": { "auth_ref": [], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.", "label": "Selling and Marketing Expense", "terseLabel": "Sales and marketing" } } }, "localname": "SellingAndMarketingExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingAndMarketingExpenseMember": { "auth_ref": [ "r59" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing selling and marketing expense.", "label": "Selling and Marketing Expense [Member]", "terseLabel": "Sales and marketing" } } }, "localname": "SellingAndMarketingExpenseMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofEmployeestockbasedcompensationrecognizedDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r74" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share-based Payment Arrangement, Noncash Expense", "terseLabel": "Stock-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of additional cost recognized for award under share-based payment arrangement from occurrence of event accelerating recognition of cost.", "label": "Share-based Payment Arrangement, Accelerated Cost", "terseLabel": "Accelerated cost" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "auth_ref": [ "r256" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period", "negatedTerseLabel": "Forfeited (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "auth_ref": [ "r260" ], "lang": { "en-us": { "role": { "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period", "negatedTerseLabel": "Non-option awards granted (in shares)", "terseLabel": "Granted (in shares)", "verboseLabel": "Granted (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "auth_ref": [ "r259" ], "lang": { "en-us": { "role": { "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number", "periodEndLabel": "Outstanding, ending balance (in shares)", "periodStartLabel": "Outstanding, beginning balance (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]", "terseLabel": "Shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "auth_ref": [ "r261" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period", "negatedTerseLabel": "Released (in shares)", "terseLabel": "Issuance of shares in connection with vested RSUs (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "auth_ref": [ "r269" ], "lang": { "en-us": { "role": { "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Dividend Rate", "terseLabel": "Dividend yield" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "auth_ref": [ "r268" ], "lang": { "en-us": { "role": { "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Volatility Rate", "terseLabel": "Expected volatility" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "auth_ref": [ "r270" ], "lang": { "en-us": { "role": { "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Risk Free Interest Rate", "terseLabel": "Risk-free interest rate" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": { "auth_ref": [ "r248" ], "lang": { "en-us": { "role": { "documentation": "Number of shares authorized for issuance under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized", "terseLabel": "Number of shares authorized (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r275" ], "lang": { "en-us": { "role": { "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant", "periodEndLabel": "Available for grant, ending balance (in shares)", "periodStartLabel": "Available for grant, beginning balance (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Disclosures [Abstract]", "terseLabel": "Term" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "auth_ref": [ "r254" ], "lang": { "en-us": { "role": { "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number", "terseLabel": "Number of shares exercisable (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "auth_ref": [ "r254" ], "lang": { "en-us": { "role": { "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Exercise Price", "terseLabel": "Average exercise price of shares exercisable (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": { "auth_ref": [ "r257" ], "lang": { "en-us": { "role": { "documentation": "For presentations that combine terminations, the number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan or that expired.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period", "negatedLabel": "Forfeitures / cancelled in period (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "auth_ref": [ "r256" ], "lang": { "en-us": { "role": { "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period", "negatedNetLabel": "Options forfeited (in shares)", "terseLabel": "Options forfeited (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Gross number of share options (or share units) granted during the period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross", "negatedTerseLabel": "Options granted (in shares)", "terseLabel": "Options granted (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r263" ], "lang": { "en-us": { "role": { "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Grant date fair value of common stock (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "auth_ref": [ "r275" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value", "terseLabel": "Options outstanding, intrinsic value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r253", "r275" ], "lang": { "en-us": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number", "periodEndLabel": "Options outstanding, ending balance (in shares)", "periodStartLabel": "Options outstanding, beginning balance (in shares)", "terseLabel": "Options outstanding (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]", "terseLabel": "Shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r252" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price", "periodEndLabel": "Option outstanding, ending balance (in dollars per share)", "periodStartLabel": "Options outstanding, beginning balance (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]", "terseLabel": "Price" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": { "auth_ref": [ "r264" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value", "terseLabel": "Total outstanding shares (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock": { "auth_ref": [ "r264" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable [Table Text Block]", "terseLabel": "Schedule of conversion of the vested and unvested options" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": { "auth_ref": [ "r265" ], "lang": { "en-us": { "role": { "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number", "terseLabel": "Stock options vested (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": { "auth_ref": [ "r275" ], "lang": { "en-us": { "role": { "documentation": "Number of shares issued under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Shares Issued in Period", "terseLabel": "Shares issued upon vesting (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "auth_ref": [ "r243", "r249" ], "lang": { "en-us": { "role": { "documentation": "Award under share-based payment arrangement.", "label": "Award Type [Domain]", "terseLabel": "Award Type [Domain]" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/Stockbasedcompensation2020EquityIncentivePlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationPerformanceStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofawardsavailableforgrantDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofrestrictedstockunitactivityDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.", "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price", "terseLabel": "Options exercised (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.", "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price", "terseLabel": "Options forfeited (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.", "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price", "verboseLabel": "Options granted (in shares)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationAwardTrancheOneMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "First portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period.", "label": "Share-based Payment Arrangement, Tranche One [Member]", "terseLabel": "One year after the grant date" } } }, "localname": "ShareBasedCompensationAwardTrancheOneMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationAwardTrancheTwoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Second portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period.", "label": "Share-based Payment Arrangement, Tranche Two [Member]", "terseLabel": "Subsequent three-month anniversary" } } }, "localname": "ShareBasedCompensationAwardTrancheTwoMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "auth_ref": [ "r245", "r250" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.", "label": "Share-based Payment Arrangement [Policy Text Block]", "terseLabel": "Stock-based compensation expense" } } }, "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit": { "auth_ref": [ "r271" ], "lang": { "en-us": { "role": { "documentation": "The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range, Lower Range Limit", "terseLabel": "Exercise price range, lower limit (in dollars per share)" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit": { "auth_ref": [ "r271" ], "lang": { "en-us": { "role": { "documentation": "The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit", "terseLabel": "Exercise price range, upper limit (in dollars per share)" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares for which recognition of cost was accelerated for award under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Accelerated Vesting, Number", "terseLabel": "Accelerated vesting. number of shares (in shares)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage": { "auth_ref": [ "r246" ], "lang": { "en-us": { "role": { "documentation": "Percentage of vesting of award under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage", "terseLabel": "Vesting percentage" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "auth_ref": [ "r247" ], "lang": { "en-us": { "role": { "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period", "terseLabel": "Exercise term" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "auth_ref": [ "r267", "r281" ], "lang": { "en-us": { "role": { "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term", "terseLabel": "Expected term in years" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofestimatedgrantusingtheBlackScholesDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of non-vested options outstanding.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Number of Shares", "terseLabel": "Earnout shares, nonvested (in shares)", "verboseLabel": "Shares options nonvested (in shares)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "auth_ref": [ "r265" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term", "terseLabel": "Options outstanding (in years)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r265" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term", "terseLabel": "Remaining contractual term" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of options vested.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Number of Shares", "terseLabel": "Earnout shares vested (in shares)", "verboseLabel": "Options vested and outstanding (in shares)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails", "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails", "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.", "label": "Shares, Outstanding", "periodEndLabel": "Ending balance (in shares)", "periodStartLabel": "Beginning balance (in shares)" } } }, "localname": "SharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation", "terseLabel": "Shares withheld (in shares)" } } }, "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationRestrictedStockUnitsNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SoftwareAndSoftwareDevelopmentCostsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Purchased software applications and internally developed software for sale, licensing or long-term internal use.", "label": "Software and Software Development Costs [Member]", "terseLabel": "Software" } } }, "localname": "SoftwareAndSoftwareDevelopmentCostsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SoftwareDevelopmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Internally developed software for sale, licensing or long-term internal use.", "label": "Software Development [Member]", "terseLabel": "Capitalized software development costs" } } }, "localname": "SoftwareDevelopmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/PropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r0", "r39", "r52", "r53", "r54", "r94", "r95", "r96", "r98", "r105", "r108", "r123", "r161", "r220", "r222", "r277", "r278", "r279", "r299", "r300", "r349", "r356", "r357", "r358", "r359", "r360", "r361", "r424", "r425", "r426", "r461" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]", "terseLabel": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]", "terseLabel": "Statement [Line Items]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]", "terseLabel": "Statement of Cash Flows [Abstract]" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]", "terseLabel": "Statement of Financial Position [Abstract]" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]", "terseLabel": "Statement of Stockholders' Equity [Abstract]" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r94", "r95", "r96", "r123", "r383" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]", "terseLabel": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities": { "auth_ref": [ "r38", "r203", "r220", "r221", "r222" ], "lang": { "en-us": { "role": { "documentation": "Number of shares issued during the period as a result of the conversion of convertible securities.", "label": "Stock Issued During Period, Shares, Conversion of Convertible Securities", "terseLabel": "Conversion of convertible units (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesConversionOfUnits": { "auth_ref": [ "r17", "r18", "r220", "r221", "r222" ], "lang": { "en-us": { "role": { "documentation": "The number of shares issued during the period upon the conversion of units. An example of a convertible unit is an umbrella partnership real estate investment trust unit (UPREIT unit).", "label": "Stock Issued During Period, Shares, Conversion of Units", "terseLabel": "Conversion of preferred stock (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesConversionOfUnits", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "auth_ref": [ "r17", "r18", "r220", "r222" ], "lang": { "en-us": { "role": { "documentation": "Number of new stock issued during the period.", "label": "Stock Issued During Period, Shares, New Issues", "terseLabel": "Issuance of common stock in July 2021 offering, net of transaction costs of $498 (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesNewIssues", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r17", "r18", "r220", "r222", "r255" ], "lang": { "en-us": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period", "negatedNetLabel": "Options exercised (in shares)", "negatedTerseLabel": "Exercised in period (in shares)", "terseLabel": "Exercise of stock options (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockbasedcompensation2018StockPlanNarrativeDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofconversionofthevestedandunvestedoptionsDetails", "http://www.gdyn.com/role/StockbasedcompensationScheduleofoptionactivityDetails", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities": { "auth_ref": [ "r39", "r220", "r222" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The gross value of stock issued during the period upon the conversion of convertible securities.", "label": "Stock Issued During Period, Value, Conversion of Convertible Securities", "terseLabel": "Conversion of convertible units" } } }, "localname": "StockIssuedDuringPeriodValueConversionOfConvertibleSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueConversionOfUnits": { "auth_ref": [ "r39", "r220", "r222" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value of stock issued during the period upon the conversion of units. An example of a convertible unit is an umbrella partnership real estate investment trust unit (UPREIT unit).", "label": "Stock Issued During Period, Value, Conversion of Units", "terseLabel": "Conversion of preferred stock" } } }, "localname": "StockIssuedDuringPeriodValueConversionOfUnits", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueNewIssues": { "auth_ref": [ "r17", "r18", "r220", "r222" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.", "label": "Stock Issued During Period, Value, New Issues", "terseLabel": "Issuance of common stock in July 2021 offering, net of transaction costs of $498" } } }, "localname": "StockIssuedDuringPeriodValueNewIssues", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "auth_ref": [ "r39", "r220", "r222" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value of stock issued as a result of the exercise of stock options.", "label": "Stock Issued During Period, Value, Stock Options Exercised", "terseLabel": "Exercise of stock options" } } }, "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRedeemedOrCalledDuringPeriodShares": { "auth_ref": [ "r220" ], "lang": { "en-us": { "role": { "documentation": "Number of stock bought back by the entity at the exercise price or redemption price.", "label": "Stock Redeemed or Called During Period, Shares", "terseLabel": "Stock redeemed (in shares)" } } }, "localname": "StockRedeemedOrCalledDuringPeriodShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BusinesscombinationAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r18", "r23", "r24", "r88", "r159", "r160", "r354", "r368" ], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "Stockholders' Equity Attributable to Parent", "periodEndLabel": "Ending balance", "periodStartLabel": "Beginning balance", "totalLabel": "Total stockholders\u2019 equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets", "http://www.gdyn.com/role/UnauditedConsolidatedStatementofConvertiblePreferredStockandStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Attributable to Parent [Abstract]", "terseLabel": "Stockholders\u2019 equity (Note 9)" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Note [Abstract]", "terseLabel": "Stockholders' Equity Note [Abstract]" } } }, "localname": "StockholdersEquityNoteAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "auth_ref": [ "r87", "r206", "r209", "r210", "r211", "r212", "r213", "r214", "r215", "r216", "r217", "r218", "r219", "r222", "r223" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.", "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "Stockholders\u2019 equity" } } }, "localname": "StockholdersEquityNoteDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Stockholdersequity" ], "xbrltype": "textBlockItemType" }, "us-gaap_SubsequentEventLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.", "label": "Subsequent Event [Line Items]", "terseLabel": "Subsequent Event [Line Items]" } } }, "localname": "SubsequentEventLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventMember": { "auth_ref": [ "r362", "r370" ], "lang": { "en-us": { "role": { "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event [Member]", "terseLabel": "Subsequent Event" } } }, "localname": "SubsequentEventMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventTable": { "auth_ref": [ "r362", "r370" ], "lang": { "en-us": { "role": { "documentation": "Discloses pertinent information about one or more significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued.", "label": "Subsequent Event [Table]", "terseLabel": "Subsequent Event [Table]" } } }, "localname": "SubsequentEventTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventTypeAxis": { "auth_ref": [ "r362", "r370" ], "lang": { "en-us": { "role": { "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Axis]", "terseLabel": "Subsequent Event Type [Axis]" } } }, "localname": "SubsequentEventTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventTypeDomain": { "auth_ref": [ "r362", "r370" ], "lang": { "en-us": { "role": { "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Domain]", "terseLabel": "Subsequent Event Type [Domain]" } } }, "localname": "SubsequentEventTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/SubsequenteventsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Subsequent Events [Abstract]", "terseLabel": "Subsequent Events [Abstract]" } } }, "localname": "SubsequentEventsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventsTextBlock": { "auth_ref": [ "r369", "r371" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.", "label": "Subsequent Events [Text Block]", "terseLabel": "Subsequent events" } } }, "localname": "SubsequentEventsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/Subsequentevents" ], "xbrltype": "textBlockItemType" }, "us-gaap_SubsidiarySaleOfStockAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of sale of the entity's stock.", "label": "Sale of Stock [Axis]", "terseLabel": "Sale of Stock [Axis]" } } }, "localname": "SubsidiarySaleOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockholdersequityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SupplementalCashFlowInformationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information [Abstract]", "terseLabel": "Supplemental disclosure of cash flow information:" } } }, "localname": "SupplementalCashFlowInformationAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_TradeNamesMember": { "auth_ref": [ "r321" ], "lang": { "en-us": { "role": { "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof.", "label": "Trade Names [Member]", "terseLabel": "Tradename" } } }, "localname": "TradeNamesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncAssetsacquiredandliabilitiesassumedDetails", "http://www.gdyn.com/role/AcquisitionofTacitKnowledgeIncIntangibleassetsacquiredDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TrademarksAndTradeNamesMember": { "auth_ref": [ "r321" ], "lang": { "en-us": { "role": { "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style, or rights either acquired through registration of a business name to gain or protect exclusive use thereof.", "label": "Trademarks and Trade Names [Member]", "terseLabel": "Tradename" } } }, "localname": "TrademarksAndTradeNamesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/IntangibleassetsnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_UnbilledReceivablesCurrent": { "auth_ref": [], "calculation": { "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.", "label": "Unbilled Receivables, Current", "terseLabel": "Unbilled receivables" } } }, "localname": "UnbilledReceivablesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesNarrativeDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r125", "r126", "r128", "r129", "r133", "r134", "r135" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of estimates" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/BasisofpresentationandsummaryofsignificantaccountingpoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_VestingAxis": { "auth_ref": [ "r275" ], "lang": { "en-us": { "role": { "documentation": "Information by vesting schedule of award under share-based payment arrangement.", "label": "Vesting [Axis]", "terseLabel": "Vesting [Axis]" } } }, "localname": "VestingAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VestingDomain": { "auth_ref": [ "r275" ], "lang": { "en-us": { "role": { "documentation": "Vesting schedule of award under share-based payment arrangement.", "label": "Vesting [Domain]", "terseLabel": "Vesting [Domain]" } } }, "localname": "VestingDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/StockbasedcompensationStockOptionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_WarrantMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Security that gives the holder the right to purchase shares of stock in accordance with the terms of the instrument, usually upon payment of a specified amount.", "label": "Warrant [Member]", "terseLabel": "Warrants to purchase common stock" } } }, "localname": "WarrantMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofAntidilutiveSecuritiesExcludedfromComputationofEarningsPerShareDetails" ], "xbrltype": "domainItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r111", "r116" ], "lang": { "en-us": { "role": { "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Diluted (in shares)", "verboseLabel": "Weighted average number of shares outstanding - diluted (in shares)" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r110", "r116" ], "lang": { "en-us": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Basic (in shares)", "verboseLabel": "Weighted average number of shares outstanding - basic (in shares)" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/EarningspershareScheduleofComputationofBasicandDilutedEarningsPerShareDetails", "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasicAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic [Abstract]", "terseLabel": "Weighted average shares outstanding" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasicAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.gdyn.com/role/UnauditedCondensedConsolidatedStatementsofLossandComprehensiveLoss" ], "xbrltype": "stringItemType" } }, "unitCount": 7 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=SL124452830-107794" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.M.Q2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6911-107765" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258" }, "r122": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "http://asc.fasb.org/topic&trid=2144383" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592" }, "r129": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592" }, "r133": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592" }, "r136": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "http://asc.fasb.org/topic&trid=2134479" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5144-111524" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(3)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(4)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=123349782&loc=d3e5879-108316" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=6387103&loc=d3e6435-108320" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=120320667&loc=SL49117168-202975" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r176": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "350", "URI": "http://asc.fasb.org/topic&trid=2144416" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r182": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "http://asc.fasb.org/topic&trid=2155823" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r186": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "http://asc.fasb.org/topic&trid=2144648" }, "r187": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=99376301&loc=d3e1243-112600" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "480", "URI": "http://asc.fasb.org/extlink&oid=109262497&loc=d3e20148-110875" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496180-112644" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21475-112644" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770" }, "r223": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "http://asc.fasb.org/topic&trid=2208762" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130561-203045" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130563-203045" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130563-203045" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130564-203045" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130543-203045" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "27", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130611-203046-203046" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r236": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "http://asc.fasb.org/topic&trid=49130388" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(n)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a),(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b),(f)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)-(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(3)-(4)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)-(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(7))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.D.2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.F)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809" }, "r283": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "http://asc.fasb.org/topic&trid=2228938" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(8))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r3": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "205", "URI": "http://asc.fasb.org/subtopic&trid=2122178" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.1)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.C)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "270", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.13)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r310": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "http://asc.fasb.org/topic&trid=2144680" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123586518&loc=d3e1043-128460" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(3)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "37", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.14)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "25", "SubTopic": "30", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6408-128476" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6578-128477" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6613-128477" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=116859824&loc=d3e6819-128478" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "30", "Subparagraph": "b", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=116859824&loc=d3e6819-128478" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(1)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(4)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)(1)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)(3)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e7008-128479" }, "r335": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "805", "URI": "http://asc.fasb.org/topic&trid=2303972" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569616-111683" }, "r337": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569643-111683" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r345": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "810", "URI": "http://asc.fasb.org/topic&trid=2197479" }, "r346": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)(2)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r351": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611" }, "r354": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20,24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901" }, "r363": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r368": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "855", "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662" }, "r371": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "855", "URI": "http://asc.fasb.org/topic&trid=2122774" }, "r372": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r373": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r376": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991595-234733" }, "r379": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "730", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-30)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "350", "Subparagraph": "(a)", "Topic": "920", "URI": "http://asc.fasb.org/extlink&oid=120155617&loc=SL120155628-234783" }, "r381": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "350", "Subparagraph": "(b)", "Topic": "920", "URI": "http://asc.fasb.org/extlink&oid=120155617&loc=SL120155628-234783" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "350", "Subparagraph": "(a)", "Topic": "920", "URI": "http://asc.fasb.org/extlink&oid=120155617&loc=SL120155638-234783" }, "r383": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959" }, "r385": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "340", "Topic": "928", "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r390": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447" }, "r392": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(1)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(2)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447" }, "r398": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953" }, "r399": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r4": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "205", "URI": "http://asc.fasb.org/topic&trid=2122149" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3,4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r400": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r401": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(26))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=123345438&loc=d3e61044-112788" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.9)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r410": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r415": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(22))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117819544-158441" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(ii)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e637-108580" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iii)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r431": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iv)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r432": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "310", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Topic": "948", "URI": "http://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=123364037&loc=d3e3115-115594" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "440", "Subparagraph": "(a)", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Subparagraph": "(d)", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e681-108580" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column B))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column C))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column D))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column E))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column F))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column G))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r447": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column H))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column I))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669686-108580" }, "r450": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "http://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "http://asc.fasb.org/extlink&oid=123360121&loc=d3e27327-108691" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756" }, "r453": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b" }, "r454": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r455": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "308", "Subsection": "a" }, "r456": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1" }, "r457": { "Name": "Regulation 12B", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r458": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r459": { "Name": "Securities Act", "Number": "7A", "Publisher": "SEC", "Section": "B", "Subsection": "2" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r460": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(01)", "Topic": "848" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e557-108580" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(24))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(4))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(5))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.9)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)(4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4273-108586" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4297-108586" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4304-108586" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4313-108586" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4332-108586" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=SL98516268-108586" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(e)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6787-107765" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(2))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(k)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r93": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "http://asc.fasb.org/topic&trid=2122369" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" } }, "version": "2.1" } ZIP 77 0001628280-21-021805-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001628280-21-021805-xbrl.zip M4$L#!!0 ( (&%9%/-L-,QAK," -)6&P 1 9V1Y;BTR,#(Q,#DS,"YH M=&WL?6EW$TFSYO?[*S2^,W>ZST$F]X7N9H[!QJ_?BV6P37/-%TXND789+>Z2 MY.W73V1)\H8! [(VU-W06DJUY!/+$Y&1D7_^O_-6LW8*9;?HM/]:H:MDI?;_ MGO_YO^KU_WFQ^[JVW@G]%K1[M9N M7J]^\[)S]&B.,WOFR?.93]%H84]>4\;J01M6]"+QN(N=.L!2<24\. MGSEJ/ N1UITUH2Z,PB."]'4E4Q!1>P]1/8G/%"=,F^ #,5'@?UY9R063@5BF M2/+YLD<]?#I\PG;WV7FW^&OEJ-<[>?;TZ=G9V>H97^V4AT\9(?3I_VR_W@M' MT'+UHMWMN7: E=&O?-F,US_,;T<_4T\'7XX.;1;M3[>N\==[1#11MO%?(^#_ME:[=39VRY7HH'W@>*NO$W#A/ MOUL_=.[D\\L.O[CGTOEABZ\,U%T(BFY',*J_]HO!$3>>[?Z#O_9@C-0)JU-V M?9(O79#R&R<:'1XZ_7:OO+@?T>&7MU ]_TQDUXGH6L/A*P/Y\./OSSZ>#4OA,OGO\9B]-: MMW?1A+]68M$]:;J+9^U.&_ &BO-G^4 H!R^+&*%=O<3O&VA0RB(,KG_>VX7T MUTKAC9(Q>J48MT(P0$U6J/+44>93,.[C>G4K^&_]6N@'\.&OSWO/(EJG>@M/ M>52/[F*EUG:M?%M0/'O9+TM\SE=%-[CF ;ARHQW7\>B56A'QMY'_?>'7.Z>O MV>[I =_NQ^.-TP^;]GCG^.!R>WV+[VPVBH/+-?%A_2W^V2T:QY_H]N7;B\;[ M[;.=_2VVO?FA>,T;S8/+#MN^7+MH7!X='[3PN\VW)/\Y.#Z0C?UMLGW\]_'V M^J>+QO&+UD'3D-?LP\7!^Z#P?&>-][N?MM]OR>WW[WAC_0#/N2&WU]_BM;\L;G!/VP>#'_S-UY+MC_L=\3.?K-U+OUCF[C_34N_S[> M66\<;6_^C>=Z)QO'@1SLQT\?FH:^WM_H;>^1\]?[:Q^9T%91Y^N!2H6VVY*Z MX0'J"JPG3KD8&5EY3ADJ^I]/;R$]?N"OP5U#YQ2S@WK5=(=+1+^%*+^)*+I> M$A-ZXQ LK8LDL\/EOBZCL2+ZZ )Q*\^3:W9A@HANM-'47+Q$2$O7W&I'./]O MN%@B^RUDQ4UD@Y?2$*KJ7&A=%\!MW3HAZC1I4$G'Z))9>4Z0^6C!-9,3A'=$ M**_-\2O\I+L$^%L GV\7&=P*Y#-$V!NC*=3!A507W,>ZI837M0#CI*!<>?3# M&8"I8?L&S]^)2W0?B.[%#72E(YI&(NL0(^JOY%#WTO*Z95*"]%X(9U>>O^5? MP/95Z4)FM;5^NQ@@6\))I^P5[[3]OM%JK,>C@^,UA/_?K>W6 MJ];V^HNC#'VCM<4:EVN7C?=O$=Z_1?S7OYL?6//4'W 3I5]67<2X@22ZE[QA^.( !R>?WC_JFAL?OBTL]]HXKGI:[[;A'_M M7GQX'T\\$^J@]?>G#\?!^BWQHO97;[!T^Q]]I M^WA#[NRO76Q?XCWO;YUMKWTD+@2B$JL;1SSR)32W)J%J<@_4*V\D26'E^1M. MUA^LE^U*4^XHI/!4 [#HC%'":FHX$RYQB4\0!(OJ^Q5R[\B5D',/\66G=0+M M;A7TKI48 Q]"!OK%Q?4A;]Q%_FCMS)6Q^NMOZ&;YV,UYG2Y:]8#?ND.8(7U^ MQZ]-_(MBN[5!&\?Q4X-M"#37EQ\V4:?7WS&\SB7">88ZCV;\X*X^X_6W+@[V M\3CVEA_L'Z*Y;GPZ:!W@\0=H\O&WQVNH\VC&FP;O[:UH7 ;4:;RGXZVSCT1$ ML&BVZX9P61>,XRL#I([J*!R*!A"'^KQZS;7N:O0#A8,I"C1XPQ)+0BKJN:,N M*:#1$TN!+85CUH1CX_*CY(Q9&DS="8"Z(-;7#5!7!X$AM9>)".)1.(BZ3SR> MWLZ@E)"@A': [CV)GYPU>M:M,IDH+K4JB_2L=W&"0'2+UDDSY]2JSX[*+$VW M#F;L_?C[ZZ/;93RJ".GK7[;FRE_-"ST<92T)'O[O^ M[NHVXXU#;3UGR&Y_,WH_NLC36P,U.D_6]6K0NEG#NE?#T +7[9?P?'CYZLO1 M*4;?C=[G<]R+@U"<2A2\H!$&GPB^B,@&2/!*.*!V0 DL_O&\U;(Q 5\6"#D 9Y)I)*GYQW7 OB) B(OAH!0AFGLS4"I#[, M2OZL/*%[JSSAU>/%XA1OZ^:A%>-SO4[Y@Z+WV>_SA^O0[K2*]GVG?:B!N'6* MI[?O_EN23PF*.#4Z(+,16J =YTD*3[A-,5H=AO9<*7 W'C<[VN#V4/XQOW)3+/,M$YIC*<^O>N"0U!B9(NU!AP^3L\_"I MX3#'"H.W$2]V?M(L0M';AAS7U&*!WPZJ#JY"D1X^>NLJ$9'CD4X[YR'6S@LD M1Z/#WE1TM(2XU^N$3X/3_?GTWJM<#=S5S4S0=]RV!JC]6H,UUD:D8\H'23PW MS 4FM0EN8=#!SUN=]CQ!0\!&SKDG8#!>B<*"C\%I!9IA8)TF2&P>&9JU&(L< M5+KF&U?$K?9+=U+T7'-.8'(@O)48PGA/!<5($F1D,BGDI9)YPA8&IEWHN:(- M<<.5[:)]V)T3?!(/7!JI&$M>) /&\9 3 <:;Z&6 A<%G+81^J]_,]7 [O2,H M\W$E'.6SG<)6.W1:,">0"9Z4HEY0!0)#.FXY1;\$BNJ@K4WF;JJ&SSUVCZ]; M/Y%(XC=0_0DBJ$6(3"6%L1H3@H(G2C!A(!%B:"!T"JC.Q;A%;1PSS'C)M4@D M.8U1+0B-A$U%('SQM&%BA&#ZX-(H>=)&FZ0XFCTPS"LC.0&>0M#*+QZXCTK$ MIP^H$3$GHBSWB0DKB;-@+40(&E1 AKAX@$Z%=TP?:"0HRC!M30@@% ]6AD!S M*EIB%!V'>8U%P'>">8T[Z/P$A52..Z5TB,E)89DSPOODD$:FH%D"MC#H3"JO M,3YHC**1YU(BKK40'$P02.R](,HSIKU<&&BFD=<8'TR:1Q6-CY"2$@II)U>& M4' \625,Y L#TT3S&N/#ATNM-4](,#".HGEQ&E)(;:62,6E*%TB-IIS7&!]D M$0'3CB5OA1,N..\3@VQ:(Q D"<$ZSA(^LB/<@S:<,8?QCT^< MC8IPQ(@=J\>?1)M[ZW*7"HN'4V$UGBD^JA4A24F/+ER@77*1 C$1"1AU2I(T M!53G8MR8-*"CM\DF(O"E17[*P' -P6H,(Q9/&Z:6V9D\N")2'Y4/(L0@0#M/ M,>Y ,V<9CT1S8=.8DV.BUE&N4.YA_?R69VU'CJ/9DRJ*%=L3G MJC]/HG9H7@/5"X/.!#,[8X)&JR0M!J226"YR&:Z4*GC@T2"U<7)Q%&=*F9TQ MP920C8!5Z,:,$=);8[E)1$?B4@ CS<+ -.G,SICPD8$((:WRC"JT<-%18*"X ME"$A3@MDX68@LS,FR%R('*Q,:.1 <,6M=P9B !=\4 HFJ%+3&H$8M)%:VY07 M^B=%#<'0%L,?<-P[ 60*Y?AS;UVFOU@ .&5"96QSTE\3Y%F."6; &Y6"M8N' MZM0R%),'UR5"D*L9[HT5+HP/R:A\\X9"86CQP)YJAF#R@7ED7).%>:1 D M*0_2$<8\@:A!>[=X@,Y$AF+R0 L3(Y%12Q:9($$:'YG2UJ4D#//>36[5YR/C M.]D,Q9A6I!)4.V&4()1RH2 8*9-4B2@2D1 JOS#H3#!#,29HF P826DE7=(B M.&4YDTYAO 4RYW 71W&FE*$8$TR&,I.7#7K.J5 4[9MP3CD7K),Z$;8P,$TZ M0S$N-?(4C FH/=$)&HV+G$=FH_&4!"?XPN S QF*L:F4,=8YCT%;GJ)*-D0@ MEDFA!&?45N5"U,[B,JANV4,]Z8X &P"4/]P+T'8X $@23HM.O]N\&+1V@_@- M3.:7I5 [MD56*CH,\WA,U#B!+-(BG01N &(R@=.E0,P^,1JC-!BO62*@@%,0 M3'*K3 I1JI"H$B[%V96&B1"C*JZM#1B 0W!:*#Z[4K*XF( W1N:&CH$DX1AWQOKH#1&"6W")SB$F-S^, MQ_UN+[]:!@#?EH5$DJ3")Q^2S;E*"RDH)[UAX!D=-&)."0$B,FXX,2@#3D4N$C%I M=H5B(>&@GB@5E;"#&;]H4E(A$,\24RJXQ:'<<^E*T5(:A40W!:-%TLQ0E;@C M+CJ@J$*+DSV9/^??W ?.U"1(DYQYVGW( 3 MSD=+6&3*,Z#)">/3PJ SN:T0Q@6-%WD#4J[!.B1[C'BC F'@D<)$;B$N##33 MV0IA7#"Q/*],!9-1<4$,-QAT <_;?DLK%*4+ ].$MT(8FQI1Y!+*!N;S]I\T MH)E3SFH>M49G9,S"X#/MLNTQJI3C!DE"RGW?A1 <*8,"'PRRPDCXL&7@K,2X MCS("B@>AHHP>B9-@@=D4-)74X&T:Q^B(!8L1"Y[_M@B33^(\M,<2&5_K.\,Y M<<)[3MV@80*BJY@*-!@3C)X"JG,Q;L0%KF@ SW0NOHU>1&:DM2H)YH5FBZ<- M4TOB3!Y<%'T9)8\61!2@M5%:>N>DIDQ9 VGQP)UHP#]Y0#'@MR$ZI+\\"1F# M\R18&C&& 6NI(D/O/?\X3C;@'U/+FLPDC*"Y_ V955 >< 1UHLG2Q)6B"X/. M! /^,4$C7%()26T@.?FID>CFIG+:2U J6)$6!IHI!?QC@BD@0D*F!$DD'$&# MK"1PIKB3T09'X\+ -.F ?UR=Y&BPD0C/3-5OG1L/&$M1577Z ;8]6/1!-E%&1&"Y%IM12I,)5#HB]>0@FYKME]H::JD'D$*#L6C\E0M*,.:Y M4'H*&Y3/O76Y2X4GOWVZH8YB#",BH5P0I9W-VQHK-$)HGX#'Q4-U:H'KY,$- M0=L,I$H(JN+),P^&8Z!*\ ,OV.*!.]' =0K:*C45444G.!= H^/"6:^9#TC' M91C-%,P_CI,-7,?4RT43HR!9Q,4G$30B CH(2H($(?G53/7\HS/!P'5,T(B8 MYZ:3BA$#5^6UBT8YX9&^16+<<'.[18!F2H'KN!I8*9>,Y=0ZJG(&R&K.DI&" M,LZL%6QA8)ITX#HF?&1"[L ,DOV2WA^&"_:ST;?CLXR^G+T/I_F7BBH M@,!XU,X35,>4\TG+3CO@+TJ7^<9NT?WTXN(%M,-1 MRY6?/K.FG3[:V%T(4)PZW_SI]CQ?N8?]BQ.X0U>'8'UV\".'B-^W__FX0D20 M7+%((L? WY*(6FX(D99RRKD.X4YU^BPO#5P*V+>-XL.KY6^MWON9I)(31N2F MS"Q2X53$*!=2=!8_D\@+PT)9L,K8OVO[HMF$>"U=/]V$;B[$:RKV2RDEF5:# MRDJ&S(WQW%R#Q* )4E:Y4/;KEQ:OJ5@OH,"U)!&XL1@71*<\QV!6 B/6!@MS ME!)_N'O<\HM!J__Q:5K\K1>RB <.D5TB$(8[GQD MWAAK;4HZL3@/46/5J]"U#^&Z=>%VT2Y:_=8B I:4M QZZ:!_F3^[/6%\=\@X/^>ZTM=4V2 *4Y%)5R[1! M=JLP,A^_&[!828H%U6T%I)0 M5%CM LV3'1*"P'^F,/6TL!+T,(,XQ1:\4YG1NRV.T2L=A12>4^'!.2.)29)! M"%+JJ)?B.%6#-GT!L9Q+9#[>HI42N5MP$%ZJQ!10;]75"J<%E(LI^I_;$YC$ MQMQ81H>('H(+;YT+A#+!G62"D3E0T9$�J%KDJ.7G>"NZ-%7RC7VX78#_GS MG?2F[ 2 .('%!Y-7-L>U5M;&I)+,':!S5SQ)!"4[[&WQ)X*Q$H:&_*Z QEHWL3":,>,0I.*?P4CXJ) M/#"TG6YO)PW328CR#@Z4RS'7$."QS>M]W36O,7S\&U\MHEP%"CKW3)4Q&8'N MV1 &*#U.4\Y!#WLF42*9G55Q^CJ&^P[M?_CO=N>L"?$PEYP^JONF]:R ]B?# M1VB=-#L7 /=G($;??G<,R9&/N8"L+"@A-->6>L0"_02(2*T6PU048EU?@OY= MJGL']F\DJFX>^C,NP0;IH@2!4 D?+#H#3QT'RR!IEN3LJ^XK]-T]>(V>&RD; M*LIAX9NPUNU"K_OB8ML==\J73=>]NVAFF.[?A6;E-[I'Q5P1W2]=A(9K?9.HS(Q\()_D!'S0 MB0H=@Q4T6(L$DQC0FKHY\@Q+FS*+OLH2I)961P9Y^5G,K5.1?XB$W,-[$<@< M"=C2$LV.5"'UD4%%91D5G$8#)";";=0^H?&28\5/W-&)Q3*;.3&EB&$FQR0E+B%;-*">>Y3%9(F /M M_.%2E0<+RINR@T/:NWC31.JVUHYY.>U)OKM[*YTZK9-^#\JK@Q;1"HC\V%3TEE>C33# M,)&Q;2TH==#HJ9FV!$1",BTB#Y[@OS90!7X.C/ /X;76[W5:'5]\>^W87!K) M:(3 $-P'D%8$Q:VTEB1)J:8ZN$07S$@^*IJ/8AZYX@R .1(D$SY&RY I6XDC MB0;34K)@YG%2 (W/,"J" 'E"I'"Y 99WCAO%# %F4HQ.+:IA?-4OVT6O7^;I M^%?%>7[UTPG27VLA@'5Y\U^A@A!4!".=5@JB\WFS%QK9/"2K9BRN^0&9G$O) MX*&Q4 7+;29#*R/XKZ==10,JK/WN=Z561.)X9HZ MC$&#=F[!W/?$D1J?'Z?:),$X 9>$D"PZ[7@2@7.1((HP#UFF'X)LKY-Z9ZY" M;/1R'4ZAV:E^D0OO%M*$0DR6.IGR>ER!7M=(FMNX >6:Y];="V9"IX+RHUA4 MH6UD"0VF=U%0BLBEP)U*55 MEY/,0Z T8[,_K\%UX:C3C%NMD[)S6A5/+Z2Q#M0H'JR,*7%!C3 D(H^*RHJO'Y7M6:4^G!4B[- M@FA559OSQ2,WSD.S'XOVX7!M87$)5QQMGA@UB\0J[2BW%ETK55X$F[C6N7E? M),.)\OG7NUD&!\H3($C./<:8\.0T3T(=1S#])%;ZF) M8=$F(R:"ZB/Q:VJ9\#J)8$1(PAFF:&(Z,BZ#%HOBYZ<%U/A\>) 6;7!()FDO M4D1%2E(@5%03AC:9SX$IGKW%5[]6;4'06BE/3,R]=2)#4VRU I>4"9)1,0^[ MH3R^-Y^8<,ZE"*6DT/9@ *B=$H$E;UW X##&D'CRP<^^7Y]E?!_%PT>$*+)D M#5%<1!)N0&JN21(LS+Z'GQ/(QEA735&%T#Q[ QBFY[W^&+=:&ZZ-R+VZ MYM10CS=>__&5KKDQ=1>9XB27O4XC=K<*(# M-!,)9&=MW%>%];- M@+?_A81(A;P0@'@!>2,JY_/>]99;80*3CC&YH/Y^8@@_SNJI0+U,7GH,X 5+ MT@E)#&=!0(R.C7;&7CB//PW0QEIJ*%A$4BTI%XE(IYV7H" D6 CG0-S_5/H M-3JYX=\)]&#ML(3%K3T(SM! .,G8@2AR5)F!0$ *Q68A8V@)@/OHYA3Y:W. MJ1+/'0BFC7:/3 MSM3FLXXS"Q&?=\M8N'*B[QAX$ZJ8+CA5U]UFLW.V4[[3=_CF792PE%J/\*&&_?X M,O5 ?;MYZ,]TN4(K&7T2')V92$;X$$QTD@JTE5(%MO"@[AVY$KJORD[KC2L? MI5AC^B S 2YJ01W52?C<3)>&Q)QC25D;I/J%0-Z#9G/T0:Z"AW(".:#)(YXP M '*)@HT)T(U&;ZC7U!C4@=I9S*M6\,D0T2[V+_=*UNZ[:0JC[XN+F-Y/;DY#:\:5/ MB/$"F"$Z2"$%0N5T4 PH(YP'&F=W5ZY9!6>,&W:Y9(&3H(2-3"0OC0.OF*"( MD4)68.> @G_#26RXLMWI]P9>84[8MZ 6HUJAF(FBVK'5*!&$T!ZAMY&ZV4\Z M?!7Q-4%>UBBOG_@NS/A\Y97CN-+V_ M19N_WO3^UJ$_4P2 )$Z 3,[0)!(:/B9!$PI4)D4 1GNL(>&NCUXLL7Q@3IR1 MAV!YY]"?*9&CEM.\BLI;)[Q%NA=]D!A!I8!&TXX*=S"TKX]>++%\$);(S=D# ML;QYZ$_I)0AGK08(0=#DK%=<6:VCCMQ1-5HAPT<;$/'9W8!HYK!\\+8_?#S; M_E =J3%H4Z,A0@5J@T(K2PS&9\5BR V@'"(X2I@RLX3P04E<9L:1)\Q%.][8 MD--1+&&00$&!T!ZM)M+340AGYC=.F"@J9CQQ@J9$"4%]4#((3T@NU1<"" CJ MG'3QRNZ9^E)IOM?NF8?;/3,&NV=S[DH1X21!;NF5<<8XB1PE1/PCYV#YQ3)^N#$@S_M*SOC\5>YED1>OW-P-\*RS?]3I=UT[;A2' M1SV 07E2/O314R2WIDF^L2_@S4-_9HY<8 C&9>(V2H%060G.Z"@\YY%0)V9_ M$G+J(#[*_*.@Z'JT\(%()4""E\@ D6P8HR!%1^:@>'-F )I^02?R=!6)M4I) M+BC:2TJUN](R/?,3UU,'Z!XMTP_3LG%-72?MYSN>N"RK%$#N+)"$!>^$L=P#*IL(1HO1 MCM=BI&5JF?UXL):)AVN9&M-&UYJ$X(+F>8I,"F^#L5XBLD&"X6+4BV4)XD.U M3(VI@964 FD&C<$$@;PP[R>2*6-*G@E^E6.:-8N MM8FX@!&9TUH8S>:@!'_J(#Y.7Z/()>@03)Y-%HHX*G5F\"H$0IP7HB,0-S!\!3= +_PHC#J>2-=\Y**AQP MQMT<[/'P"XK-XS1T"9YSEUO*HSPHQ?/&C%+3H%6T*0H^EW.U:_F>!UU"MMHA M7^(4YFB>5AFME!%YOR85,$&XRCNSS#>'^D%P?M0R5-=LY(8PKM?O M=SB*R-6^HH25[PZ(6GVFB>("EA#8' Q9QS\ G+S_6Z]-P(+O0@ M5@+TKEWTNKM[[Q91?@0+Z!6\4J!06J+S6M (.CJ:&]CP.6A"/#L^85PY8L]) ME%I*],Y&>*?POR@2,%1KB(+,P[X",P'.]+FWUD2&W)"#&A"2$Q=%D$FY(*AU M1L]3[+:TSE.0'^&2\=Y*9K44U%?;*D=&=?",<[S24GY^0'[>0)DZ96O0NW-2 MRUTGOJT(]2)2XTTT^,(1@P9'B,BEM<;: +,?]<^*7Q]C:P"NHS#5<%ZX M7%F T@+ *-KV.2BUFC;1?I0H.BEMM;8T^>0$B&"CB@9-M 4?/*7SQ)VGC<_T M=2Q1$Z23H##T$1;_\81$L(89[K7V<["4<]H8/LZ,$NBHD,5RRY6@BC@+048I M@Y9@+)\#6*;O,1=$$D0(X +ES 7AK')2:RTIH]HFXV*MI1:@KSKE+@5F%@3FL[Z\; S6@UM!'(_,>$.$ M\& #Y.:608K$S*@RSH\JJ3A_:,/_FH3]3#N^#HT%*9-=$ M!*D]LPR,S+TO W-I#DH(9T6OQN25N=,Z1LFIR4ONHC8I146C%VDW/)F,ON*3'KK M.\HB(:FW[UJ"=IGEG:NH M$4:#)>9U@9VOM*"EE8Y M>F]X,)2BL8XD&9<6S?E.%^*I>."4N(_#1-%!75YK:=0PB;J-6>$&Y8W-@/Z>1_I)<1SYXOSXGP %EW><]HB<^9, MN,0E$RH(%N=I*G[Z]4X_M\K@P5?]&[J9(=ZAD+G,X(7K0GS9:65Q'B71:^ [L9Y:/8C MQ%=EIY6Q[?X9OPIH0$93DL3E_$ M2$JH*)"!>48]"*V2"TY0&Q)#QQV8)',422VT<$PE!G,N<)WWWE$R"BMDK@@! M[HEV2-6Y#W/D^Q9:.*83O5&MN.+1\CL@Y9=Y3V7%''&6!2N$Q M,HE+;C$C#3.FP"^R%0B:61Z$\$E[8D@$XUAD-"2BE_QB%D1C*AR#H1]Q*@1- M,%SE>:.X1 V+PA.NO*+SU)1T@45C*CR#HA^)S$'T- K0PMKDN> .J+%@=%SR MC%D0C:EP#0Q0.<8FE#/&A>=@D(!J2(I$'107L.0:4U^8/GF6H5A&WT61>!1X M9A<]USR9)" ($L.294Q7**;"+Y21TG@M!.%6@+%&\\ C"Q*D#8':);^8NJ68 M/+-08)6%O+C+$!&L=ERH*$%[SZ@".D^KJA=2**93$T=I)$8KQ_+69"EYJ00' MFJ2..GEKEYSBME"\=V7IVKU%9!*!6*$59QX<%2@)7@BMK;,J,"J=FJ>>* LD M"M.I=U?<")&U>JZ*)F0!0($:GVFM%D MA:7:09XV7;*&*5F%R7,%&DPR/*$A0 'P1!JF/ M*@!2$>C]W MQG6AO;[OPC]]?/R-4_SK\_9\=PYX=!M%R8-M%![Z_=M'/"W.GR$9[_3+ -W! MVR-PL;KY6)P^_Q/_&@8\G#!M@@_$1('_>64E%TPBT6&*)/\QB^?U;[J]BR8* M8JMHUX\@[R_[3+!5+4]Z?YP5L7?T# 7[_ZQ4AS[_LWOBVJ,?A$ZS4S[[3Q14 MDM(?">^SGERK:%X\^[_[B%>WUH"SVFX' XG_^Z3KVMUZ%Y]L>&"WN 0\,5ZC M>GLVO"XA?S11?$;W01GY/W_DIZ]'")VRLD_/^FU\YGP4WI.;F7NI'960_EKY MSV\/OEYYON]\$VJ=5'N9P6WWNG\^=8A('MP1,)_#X\I#1*C7.7F&T."S]ZJ3 M#+_UG1+OI([#T'0G77@V>O%'++HG37?QK&A7#U/]Z(_AN7RGU^NT\NG^J(KB M@FO67;,X;#^KGG/P]5 (K%TUDF+HPD,16:U$Y&DO?OZ=-:N6?/EK MLDJOOGM:G;L<'3 <>3YXW%C#A\I#]-<*7[GSW,,GP2-KL=//XU*) D)XXF)$ M9_:,U&AUFNOK/*W&XNLC31F.3348@W')BS.@7/FB'N %QR%[^A[96WG^KK&U MO[%>V]M?V]_8NRTM-^Y^5NYV;^/EN]VM_:V-O=I:8[VV\3\O_[76V-RHO=S9 MWM[:V]O::*<2L$ S18*DA/'64^A?O[;-3:+K.7S"O6 M.Z'?&KK@E6%U"/_[PJ]W3E^SW=,#OMV/QQNG'S;M\<[QP>7V^A;?V6P4!Y=K MXL/Z6_RS6S2./]'MR[<7C??;9SO[6VQ[\T/QFC>:!Y<=MGVY=M&X/#H^:.%W MFV])_G-P?" ;^]MD^_COX^WU3Q>-XQ>M@Z8Y?\T^7!R\#^K#^@L\Y]^?/JRO M73;V@VALOCH^.#[Z=/#^'3G8?WMY\'[C8F?]\.S#_J?3N/FWB/_Z=_,#:Y[Z MXY-/VYM;K/%^]]/V^C9M7!Z2@_>-8F=S]^C#_NY18[UQ=+"_)7;67S1W_C87 MV_N?)#[/Y?;Q.[ZSOW'V,1DT_(P"^G>KZ@*\JAMO0MWB^-(D%44NN?(<_?_; MRH%?(_)\[L3JM]S&HK;3AM\?0Y'?H]'.AKO[,_X:+S=NL:\RHSW\]7GO62K. M(=9[91_N4X>W?:2 R XN=N&D4_9^:; Z M):6YX'[E^?E=M:B-A&L:(O[VW=KN_L;NZX/:[L:;G=W]VIMWNWOOUAK[M?V= M&CJX??1B-VLO]_#6U7,R=JK_JE+7> M$=3^&8ET;1"DU#!V@3A^WW)3R2+&1O46GO(HJU@]NHOZ!;BR#NW[E.Y-=5\; M@Y#JUU*Y<[PVWL?&>>-X^VQ[_^WY1\$$ MD*C!2:\*@O_K/ZDB?W#RI):1F'O_M+,[B5N>'S^57+-[KZ/*"Z\'F9JEI]I? MDQ]9TB):0>N645D76H:ZD?A7($(S0Q +BC%\UA;SQY>TY'$%_GX9FJJKW-]= M:^QM50YQZ2NSK^Q=:=7(6::RTYHB1E]+I U,_^3_GJ;$UGJ=7T!;OS>E.FU) MF!L]?]EIM8INGI.HO2J:4$,/@!SJV6,F6@9S-_EJ@XO]VHZ:?025I'=&UJ6D MR&]))'7# ZG+R"$HQ@AXF2?2:)T;9>3<,]I'%ZU=.*SZH;5[N4/1+RU>&^;N=E>>;91%KZQC5,OIY>NI:'FJN6]L[@9"GGV.M:->*7K?V\JA* M!WPY_S>W>&[^Z8#X9[\N:0/';,C/<4\B1^#T[*SFFVD[?S30-[F1M.EB=#%E7UG7S9 MZ;=[Y<7+3IQ/\_FJ\)OOU(?6-MM^C_?0VKAH[/]]W%@/>#\;I+'^Z;SQ?DLV MV-O+[7!^V,KF/X[>J"!:@[R4A.$$!S&#?G6\-RX\&357GF(%.6L:W MKF2\\?:CD,)3QDW=6>[K L#5C6:NKCWAA&KGP+"5YX;7B>),,_%5*?^&.1\Z MV(K'GO1JW4X3J9O*LI)+NWRK36NN4M4[O",K:<;\LNK$(60[_ M].73YTA5BINFN#JT/'3MXK)Z__MX;99U8;7/\)!'XVL8YA*JZN/;&E9_.W,5T\NKWA]U/IIBJFXKD MLE]:7-_ UP=9!>ED7*8FZ2S+4-;5)\"2-LA$E"D5AU[60 MU?+M<]+IB:$UYM.M^>:'XJ3N4UWC TM\C$JI[F2M!YYSF"0Q.M&AE2W MU K+K0PBAI7GN7\SGSM_\=L0\)P3/BE1-XL3UZS!%6GK)(P7H/N@1/!,S:C\ M]HBJDIW?6@GN5U>._;7SC]9*DK=]JU,NT/VA=F1"Q>K*2)*W +1&IY7G2GY& MI7Y_3&.6-PAJOCGJM)?SJ8@2_8B,ER;"=1TQ@;I04M2-U;*>&P8#]XP%P3%@ M8[R>@[;YLV+7TUG_]9^&4?U'M]:#)IQD":BU*Q%XDA-)S7[.X-0<*B_*6_Q* M@?NLVK7K1;JULGIH*"'63OIEMY\G\WJ=&AY1Y7M58\RF2?'?E:J5XEYV&3>]&^6JU5F^:\W\[A?] ;K-\&%HUIH MNF[W5YY]VB]=93#W+EJ^T_RM.^9T^WP-QJAVHA(-. ]'KGV('[1K9T<%?G)M MCK]K)L>%3X=EI]^.]>%SA "0TA^+,A7QB"QOZ LO\.A*;^>2Y0WF+'?VCXK& M_HOCG?UPN;/_Z;*Q_O:R(Y_%XWU%ZT&P^?GFT??J3.21:5 MK2?/3%U0X>I&1%Z/.B607 B>0]M<$(EB7G4C?5([<67MU#7[4/O?9!5EA^8J MZ%KWZ,$)W;E>>;ZP>-I6[,B6[TBFA\I:#CN=WM%NAA\5+1SW01&1)6J32.]L=6.N6@#:OZB M%HX !Z"5%^B?'4%5-)/C^_*ZGOIV:A^$!>.)AVF#P4\ISH7%X^63_6.7._N4YRYV[>:[W/P MX^&#_/ZDYMJQ]AN[\;0>E10/\L?X+/E'U?'XRWPKPY/E99'=ZDZJ.W7=7LV2 M6G07W=7'GUUYV2]+O/Y@,6;VNGF?WNY-??/2:$^XXJU/'2%T8!763 MHJNG*%/>NIZJZ%>>'T#WKK+_T$JS,2WK/9]FY%(#)$T7M:W,GURHIM?67<\-%IG=,TK$O+.@>6%:V8JS7QX:#F,()MHK9GZYBM3)F9X+V?UE"DZ_=^ MT6VA2<:KE",JAC:IA8. 5AKM'YX.B6(>R,,:!L]GO:/1UZO(@Z&ZMPBI:%== M *KBB3SOR/ QOW"'U=?TC]%AWSS@R_^ XT)[6V8C. MW^3PJXLW,\CHJF7C7Y#'Y*K1C[!Z\/'N]H$SCC\^B=>$]!F2$YJFN3\A]/I^ M%?R.F:M'>LK'<0!3>YPYR^)5-+&2A.QT#COEQ7WK/C,7+U\.#YA+^CC,Y[W_ M=W'P_E5S9WU-;+]_>]98C\>-XZ/B8'_C_ /^OW$9+K;9OXL/[]]]EL\[:/W[ M",\MMM.-RZQ*/:7ZXO0:.[JQ]],X!C8'6 M(S!;%P1LW2J,[ 7UQLE<*AGLRO.USW7SAQ=\SJRNDEM<=M&,;.,^8O5SL(WH MZ=216UPKNS=@E8/PY8I:#MX.2>/TGWB.^^X-?$@URJ/=$I8^Y%L^!'W']M"' MA+/MM8^,(PRG M?U]HYCS0U=' ;E;C^G(PK$N=_9;.7KS>W[CB?8VW'T$!$TRS.C.,UD62/E= MN+IUTCM.-/&.W-,"^G&J"<>S(<2L9Z;H:CF)9"TM3O5 MK$*_.\AHX8,.NC[?T^"R4U;7:E[DBY\5>&F\;*V-S];)2:K3HEN1P+9KA\(U M<_2=V^7D@[L]UXZNC-U:[K=3Q"]5J_/?W._W)J>FF6R='HG8.+]NWCMH?3V7 M5FELT\3D(UBA-%JUYIDMC,TR7'T'0)(#F M1BB4UT6PLNXY1_)#3((0=63,?8W\/,@F3=\ K57S7(W.Z8TM!=A@1X$GV7Z4 M4#O+?PV%\E4U'8^>O=\N!B)9E8AC0'Q+3(7B5#)F@T8I]8G@BTBT(0%MNP-J M/VY5&R]2PE;0>H4"8^ON7RM;C5>WA;7=;]5CIVI]G ^YI_2JJF&OR@<'6U_O M]'L5-4$M1 :)$1 >3GXY43X\^YCWL:..A3H1 OTJ$Z%N?.+UO"%F!(0AL)A7 M\#YADCXQ5HWD> 3P\T'M?R4=Y>?K,,.-Q0/HEKK]7(_8CK7.]?C/\OSCHF^- M-[ ESZL&85^$X<[FD2>= 2]]5D*N0#J%S[:3O+[3ZA;)]4^<[W::_=[G/_GR MC=S=-O%A.V'JE=%OCLKK"/$026,)[E/=I1Z4SUSSS%UT5YXNM\LT5Q[2MWWDO#[>ME"-F:[O[ MM:W5VJNMQEKCY=;:ZQK2YIW=[;7]:HO6SPSM@]JBLB^N%?N<;/S JN?'D)O' M;;AWGW1,*\:[0W6./W6 M;[M^+'H0?Y\ZTJ-SSTK#H'G46OH%%+_;U*;JGY];1'SG'$OEGY+RV]R=(:<& M\_P;OJI<\(X-ZX:K)P+RW 3UH .T8+,,8V DL+,%T+P-@7 M+< -+M!)M=>=;K=*O.99FQ*.\ =Y!6+^>$D/YMPX9"%@2WJP- YWY4(^T#C@ M5Q46.0WY!L\.95D=D^=LLLVH7AUUFG@+W>',3FWCGW[1NU@2BWFW'2@C?$DL MEK;CKER8A]H.USVJO6IVSI8\8NYM 6(NESQB:0ONR 6G><57#^^IUZE]P2C< MEX-/5(Y& YQ?-(H&D^G.)ARRF>A3"_&=!MUW:'E56]JJQ;+[JA MW^WF&LL"I1T>@T;SL0702[X\*=C$T!"+)6%>$$,LJN1EKT30 M*B/\INP$B-GN3AWAI94=@[KR;V0E[JQ)KRVDFD;H<^SF^48 ]C[;IUZC, M9GI4FKVU6MO9_]?&[H_797_7!-PR$IQ5B\;)N(JREY'@;!"0C.AK.'3- ?.H M&JTOIT,60E&Y609X\P;;:$:$KBTCO 4QL AI3IK57KG0ZY3+L&XAE'1\MG7) M72<%FQK7;/.2N\Z(:45$W[5O["Z_YYJ#]BZ#DM^;6\'EW-J[;M7"84ATERQW M(51:C6T^>J-69.L)+*SL&=5U2 MVOF#30ZMK%Q2V@6QLHCH3M6Q?*L]:."+IYHZMDO[.@9%7;+8^8/-#.VK6K+8 M!;&OB.C&^5'AB^7RR\703_6-[@P_5^KX"!T;QGZ.[RYUG'UC]&N4.DJZ\GQO M:[.QMO]N=V-O:8[FW1QE/)7XFCF:W?T%9@W\8AR;'%"R,OK1#V61D"[;+ MP=Z;C:J5>&-G?Z.VN[&YMKN^U=BLO=K9?8\OZZ]W=OX[O]_;7]O?V'[H+@A? MV'IM2IJY?U1T\ZK-$D>Y>5';K?9)KG7:M5>=LE6CI/ZVVL+(%>UNWH/HS)6Q MWNQT/@UW.QRU1LJ[)!;M:F>U%KAV_G:XT5H"%"/7K'6OZRB:[JS[I'9V5(2C MF^=YBG4NGV?-\OIY17]9=']-"B\Z+<#.CN\CWR*U7Q[7[J70VCG*^+3 M5"85;/!YT"\(SXHLK9X'6_>KFB'9K] M"#6\XLV/>T>N5W-X^KSQ) YRKU-F3UU++O0&3Q00;0]H_/#X(A40\VYW"$.K MBT. 0^.ZM=S^@)$_\F"$X@3/W7U2?43_&'WEH5G@4WWV>>CTF_'NAUV 3Y\= M"2A^K?M.#>?XOOOH'MWWB&=%\[,SG]TZ$$'N%JA)KJSA$Y90-948()+EM0V'E1ON#@2X MD_<+S9A\50:&*C+8;+#W;94:RLR3FN]?"TD3[RHW%^IUGMP\M\M+IY\]Q+*H M3"<&C+&>Z6&U@=JW=GFL4S.U7=8J2-04]SV\/5Q4K%9;U%3[PYYF9I5;B0SM M6"P.BQ[J+[1QN $OAA*09::XSNRBH(2C-M[XX06:N_*T")6Q0V4)[@2RYE=V M$2U/0" Z+2@'8H<2WJU4[8\ERI-#.>/@?-',17[H(2#VJQU'*Q1]I%^&??H:V MS']5&_C#<%_I)4P3ANDSVE7MD'C%N\I!VZ8E+!.&Q?>[>&RW6\NT;;AK MY6T+F5+>O_P4D-2TJ@Y=U1'#W=GS#URWVT%$>Q4/0@K5JQC,$LD)(EG% VG M*SK^> !8%;J-]*YSU0MM"%;A2M1(JMG'%ZY>X3 ^7U"^KFIL3:$-OP/GZ.=8O MNA6_&&%4\ZX+2YQF@*-7$7&G=0*]HFH<=Q5&5PFS&W&7.\QYR%ZMC?>(8YRW MWL[YM^H$..R(0GFQ1'1ZB/;P>D@.LT&\21:K#><'!#&ZD]YM=;S.F2R1FQYR M1;O=.[[4-Y1+)Z5O5)QE& M5*[>DX$^MH^J'?*J2*^L=+%*7O:@V<2#^FAH\7@,#7I+/9PB>L&=9):/)\T3 M!@$Q.\P:-]2T,.IOO>274\0HYGBLZKKS%.>BJX2]OW!4OV,WLB)+<&9>L8CNYRR724O\AS]$I'I(5*ZHGN5AT6T>'"8YA MQC?_]A-2/]N$1S%C(9%2EI#M.%(T)_Y,I!(4[HM%J=?/MY^][.X.#&VM[Z MVMLE=A/$+G2ZJ#V#@MM&RG580G-WP:GN9IY_;,6AKTC[T97-QAJ?GM M8;/C\VYZ.W]OK=>IK>6X'?#D?^13+D5E@@ZQPO8+:R#RC&<1AL56#R@ZOPUZ MKFOO0B\7!B&WQ1,,6T8_&17-/_)85&=\5N6ZPP, NMW]>%HHK3Q?':XBF+^% M/N^A%MR@HOVBTQ]8G2K;TT%'T,E"D2E697?R8H3ABH9J5'J_(W< 0[78+%)-3)EML#]W*#P*P/BNK7A>I91K'%K!=)J[?W(X+N\N?0W MAO=[EY>I7 MUJ\NEZ+^*DM1IVN%ADL7JV5J@P3BB#@.EP!6IGO #&LWZ[F?W*BTOYI ?G)_ MWO')[?5(J[7]HUPRT$,."2,W,+R1"-U0%GYDDZ#[50M6Y#6-53ER-?&0&R6_C'(BS6[<(9C_%!W7=M&?M#!P.-)51KT M)2Z*,)>'* %EIU65 HVJP095)KV,?_:=@[BG68E*K=_-1PW=9$4TOG3V2M*K M%:T#IXE#6+1.BW M\J+E7"B%%JHY",]&$VI?6S>-CYUCNW"4=3A62Y #NNO!B=V@,N>SB^:P[M8U M!X,3"U3_LI97\Y9%M0)Z ,CGNE,M,/[R?YVU7TG06Q6MV7!]V%06X_A\Q-0)>1E\.@V:M.EKYIY6XJR]@( M\V@1>Z?='$RCGXX(YFAAZN#;X7KZ_,E-'EI"=:U*K"LWVG.?\@C5.AY!&RY; M[2"?K4[S#5WZCKO.5GZ@!S<6W=^6V8HDW7B$])#S9KBN3YU-TLT%N$,P*PU" M)QFJL_;;U^OGXY4*P7F DZSC>+)_^D4YR*8TW5DU5*,P:*" .>4R4-#J](-U M[54E0WO([\O;U#H.VND.=*U:\_:54 $%[N)VB($7"!5<_6QPFL6@:Q;*)5S:'2V\NK2$:.ZV_QA MU'W@BJ'=],.C%@0W?C3"I2)O-Y=QG13M@92UARZH";DD?L2H*I;6_4SM!Y%E M%:C>5!%WZO#"V0=GM?_^X8*^3Q.+@YJFP=YLMN9 MUDR%^Y671K&!\R.7!>DTF[=L#2ZR=G>>#/+DIP5*2R<]J3C*E<9DHW UEE>8 MW+C_+^!2M#/]:O=R%F'$(/HOOVSE9^7FWS76WJUO[6^LUU[N--8W&GN#5WL[ MK[?6U_+'+]9>HS1OU/;^M;'QE9YIL_(\OVUE7]OI=W,GGZO H:I &:3+8%B/ MDAF4^_TA+%8.VM965NO*U99H^G+_SZ8[Z<*ST8L_,MENNHMG1;NZM>I'?PS/ M-?3/V;7<:05:#=[@ZVNOLTH&GF?87G9XY>'7J]57HRZEM[[3=-5(_L6OR2K] MXG=?.RUEJ\*J'SKMU[^3_,L7_>&;I:N*/>R&OM$"_INM@^UGA][3_W6@$E_L M #MA1:GD:BV'$E?B/XZ1N-$B=Z >E:7.VM=I%K$V>J3Y&J8]-!_0\F@U.'E2 M]8IEA-%;X_838_!KC>7Z_V?O39?:2I9VX5M1\.XXT3M"Z:YY<.^/"-I@O_1I MA ?F$LRS\?:ZN:N ?HT, M[C/-=VTPTZC^)4\(K[LLS.!H7%XU/?<;O>^_$U>?SFD>Z?^T\Z7]R_TI_U/A]_VMG?I_HM6^_#;%GN_ M_2K]O&ZW/GW&>]]>G;?>[7W=/]@E>R_>M_^FK<[AMQ[9^[9UWOIV].GP.+WV MXA7*/X>?#GGK8 _M??KGT][VY_/6IS^/#SOJ;/^-/G;'S[O[QX=G>P>^O4>> MMUO;'\];Z7OV7_S3WCL^_'9(_CIN??MXOG?@^/[V[OG?]/71X?%99__3#FH= M;-']=SO?]LA?GUL':5S'KX_>?WI[UGKW%AV^>XM;+_XY:AWLL(O/I.\Z?4_> MBKV#5WAOV_'#@[UOA\>OTOMVR?L7SX_3>_'[@W2-@[?H_;L=O'=P%%O/T-G? M!SO#O3?HZP>O+%(":7!$<6 ..= 24[#),F)#)0HJ.?18ZR;1\C^_7UT.*4J:8MM'8M)P9,CRPX&V%30@3B@LV MU0N;OEUBDW:<<\\-$(4PL(@#&.YT6EO<&,>L0HHD;,*D*1FO$38]0&>Z[YCI M*+N=H"D6>9'\KQ\B]W_D53F7;KK:?W4A*8OMA)SK--H*[W1Z7\TXC^!?2^$@ M5U5YZV( SWO][=ZI'<;3SL6 7U^.=^Q_%)6>1:63*E^H=+I.)_SOZ_/W[_R) M)4SLO7M^O+_]EKW_]/S3X<'146L[?6:[<]S:_O/H\,!_;FT?HM9QZ]/^]NO8 MVG[[ 7'G&#,8!%8>&&,1%+<*-/.)J0BI;? ;FX2S:VA0>2JS+*S[&Y"RL%9L M81WL?N!48&JQ !$9 2:#!(VX3Y9'X:"8]"+0C4V&U0T+J\KKN(PUCLP.1HE5.7SG%S4[OM)"S,RF_6XD:JN-)];BJ]Y72];85A4\UZJ M.7$Q:0R.$8_ >9E 6Q$".M@ V-'@O4N"C;RLA<>Q%ICW)&J7@)7Z1.FY%J C M%< 1Y0)11#AU&YL)/:6DUZ!V7HI_,\W^I>&'[[[RUMCRH\?WI?CK1:<7I],3 M-YVH&#WU!I#Q#EC"8S!(64#!1V>84)S)LA8>QUJ@%#&F302/C 3FB0'K5(!@ M=4!61&M)6@M8-)5&=<;WQ[:9][9KVYU.\%.QF=NW5W]DK.X:-U]I8[44 GHA MD@E #0H\W0.>VM/T$RE/I$2 ! [ 8C)5EICDF0B$H[8J&!*3F]]4ZCK[7/F] MKJ*_2R4817\7I;\3>L&4LEP(!U&%I+_2&5 A4TVB#'4F(B1"HA=-J76-]'=! M^T$K0R9>]L.):?O1(;+0&)JS>Y*)1^'Y+FH':SSK!WFV"\+,@C#GT\%*@Z56 MFH!0B '#B(!-M@!$E!A+'PV/:&-3Z.L[3"48M38JN:B]OZ*2]U?)B=''R;(; M$BRD!RX9?1[!4,9!::&($B0B[38V5<[LKXU*/K;XP87)ORAV/U5CR-TM9_O1 M.R5+"2J,Y;0S$M-6U^]G&8W..Q3O9':@VI_.I0T^&0AB'6C+*# >,.BH)7"3 MC$@4D2F;@(HW*9H;JDITH;Z*O)3H0E'DA2ORMZFD>&1T-!2T) (8BWD7PU&0 M-$;, \F!AXU-TJ2B3HJ\T#"#KCGA..CE'MT+X!;C2;CS4SQ^:Y13SJL0O M'K&Z+R>[HJC[_=5]0D2XL%J%O$MITB]F95)W+3$HXWA0+!"#\,8FIJPIL%@5 M=5]0;*36].3EN,7SJ!3P?T_;X^:!W3 L$9 'CH",)/.R8[K#Y#?M7 BG%0I0 MS0)4>P=;&:1&W&3K@_*8!>,Q<&8#,!P0*(Q< BVE$:4>)1-3!3]TG8[JE>#' M*K*+HL.+U.'S2QV6(:EM^@]BWO)DF"?BH1 'SX4P.C,/Y7)Z%*J5#B_[N.U# M:.!N=VBZ'ZN*_J-8Q_VIQ*/8P5T*E7C>3@,(?[>_!#^1S\CS*4 T*Q#M3).) MZ"-1R6H P?F8D!$<$K\(X)QR,1!KA"H\H&KPX#9YP"(=R]J?3H$+R!YCW$A3"'HC'@B^:@UAWC1Z_G<5J]$(1Z4.%R(H8#,3""S-TT3A$Y 82(![T0" M&9O+DH1$& *A/ 0:(A,ZT03>I//SA!)OJ*_"+H4G%(6]K\).6('17D1)T^KD M6 &CU(#!.4.3N&"T)H++Q.LQ:XH;ZDR4T,*O;)XPRLR\.:;PL_N<+RVK=E,Q M6(%<&<"W%?3# E%AK&W"*R6$1CB%BS#'!"C6@J+ MB#,T%VY+B*NN4Z0':LJ.1DW9[^,$UB;I=J9Y> BUL "PJ Y3CYGCEASKJ10.;=7R":FU[?'"J+>1JXO!G(Q9#9J ;E@ M5_D.UUA8%[EZ#?(Q^#!_MXUM=]K#]O@D>\[@'I[?&NA2(4) \>F X4%.#-QM;UDA$EN@6KA@#F#I=H%'-Q8U/R.C6X?&Q%0].J[Y\&?R=^ M_NCWJ9?%>[)$IGSA D7W@:+/5Q)2'1;26PE8B 1 C"(P+$90-#HA.%*!F4Q] M\,+*=Y1$DQHJ\ *Y0M'1Q>CHA"XP82RR4H%05B2Z@#T88M(CSK@E5G@6#RL'-\TNF=A_ Z=,RP -2\ M /7I2JV-B(QRPD2@'"-@-GDVVB4F@;P)FI$H&<[Q$]PD9 T#*$63E[K37S1Y MX9H\H1I"42ZYE^ P)L""P[E?&@=LD,,,4Y3T>F-3-IE6*U&* O*GGC$[1&6PC0*2LV)4E>J=TC/G7.$@A6*)Y1B M'K3QB6DHY*@6DTTEPM6.\)$ "R8!I9IG*)&07#68VC/LN<]'O4Y:=H/_\S^* M8/G'N%)7X[=6;Q@:^M^E9->"HI^^_>7BVN-+0'[_T\OM\7;7A^[P*>AJC ]2 MX:MW?-S+WYI61;/QKQ]9U9>A_^;(],-">/QNZ_GW%G0TE&I]OC3]_?Z;83XZ M\X_IG(;)5X\M*RJ6]0Z6]?-P[]G8LC[3Z/W_.T+N^)^N>:=/]S^E,1]\)OLO MWI*]@]UTGZ_.WA_OL=:[YT=[WSY^?7_0:JD[);EQNHG7?/=$X,?W&ERS9/QJW+KE!EOA@<6 U@R\PM12K M=3?8.AT>]?H)EGU9@@^R!/?./S M1)28 6>( ..YB(BU%A 3/N&+IL+''R#8 MC=.0FY6 QC9"E,;@8+ S)I%]P9L) MZYK),[@#M.4J,RMA6PN6/>#:.SS[@(U'EFD.UKKD*6"7>^9(!B296"\II1J[ M%:%I!A,1-\R@T8N-QIMP,@S'-O1'.P(4-1O94E9OWPYN^B5D!;+24A7 M_Q(ZDX8)OOVE9#DM,F_@5G6M@D1EUVY6%9WD!S"D D+)^U$NHJ1DN?A?$@%( MQ@A#U"2\11N;">9GDLMM]-I)*0:-9T.C;E0*<,I'?Z"P%5Q7*,MR ]8H"1=N(%^_TA:U)A*OP]"D)WTCF'XW#;J<=GQ8_G ACYVQ.+:<.ST^K8H! M;X?8=NUR4FHV)+I2A00U5>"I,HJKQX59YJ,X:(=P%[D#2?7;8A@/8D #=& M>JPUIYA:Z(W>J/QF[_BD'XY"=]#^$L:5O7__K=,;#&Y/&E]/=^>WI1".0;K/ M].B&,L 7@JGJ]SV;%LOH8/;?22:M,-R/!^:LP--,\'2E%F<2&)'I!SC);8VL M#F =46!$\GH$D533!$_R>KSBFD*44,4JZN[]&4;1W8?1W:F69(H:%Q@!1PT' MYJD";7#271Y4TBK0 M-!,T7:F^&3%.HM((JFI\3&"='N5X!O,,4VYQ0J= [ECKJLIBO3N!NV/YB]$]/J5)$KYW:COA4E#S86SMYO-?#SA!:V-\EETX M;*OKBRF:TQ2]NK)[AX4TPF!(A"$ XS* B1)#+G\8 Y=>Y!H_R4-O"G6]#/4* MF:*%*_$#QP4+G!\P/D]78_?AR9]Z<4YL:E24\>F_['='7T]N8J@+B3%ZR\_^DLJ M9^(H-(S+6\BF>YX/S'5[P^Q1]-/3W48[C>QCO\J#[P_S0;KA41B$!!SFU+?S M#G0"#1^Z@]&C:DZKC>G8[IJN:U=QY?3$<;K#P9.K9^BFYF8\($:>R'PTX*0W MJ))$G_9SG_;VE_#'U[8?'EV V-0'Q])&DX\8FP9Q.KS](W69=_S=B<*IWWFT M%=P)BHA4SCJD/$O_6Z$Y980[I(E T7X@9./B0T>7U01/S,< MA_,YT3@T@T^ M-9VOYGRP\?O5]9@6XW?S_OV4W3HQ,?ZRB1GI1;(7O;ZI!)HT/?3SN]*83&W& MTCCJ9S/Y/S\7D4PJEB$A*\^S;&&3)OSG=[-YD_@?=)E>HPS5,GWQ>G>[L7W8 MVMK;??:F\;_[?V_OMEZ\:39V6\]NU^>Z#/YM:^OM]N[!SG;CV7YK>Z?U9O3H MS?[?N]M;^>DW!^F?O9W6P9O&_O/&W_MOWC2V6MNUOZ]G^WLO7^_\;[JAW7]V MJF'7?LB_[7:3[>B=IFOX0;,1SEQ(9O8D]$?E=1K);)A_WWH74\9SW$&H4JE+ M*U!9]G0K'7,R"$\O'OSAVX.3CCE_VNY6 ZH^],?X6F/3D7'O.ZM>3=GHY3$D M:OY$(Y%1<1Q9''_Q&#"?5(#Y'5$9O<;$$XW5K2^C)_C6UWYT68R>""KO==D? MO\8%69W!,J07/UCR!-]S#AYHL.).E_U)7/RG.V_ZVEMO" 6,$*96+N]!,M2A ML9?>=S1H["3[[2>E(!H4->]057=MYZ:5GKDR-?^Q_=\W;Y^>>=?05(QK!E^L MYI.8H]IW*1;N&_E?H<#^W(>S, J18"4=HIQ)A@VFD3.+J([>:^D^;%?[M!)A6,B!RVI= M/N_WCG/P(X_O77MX].QTD"8K]'?.7.^UQT/_3Q_/# M3^[;^_3\_L'[3KHV/21_M5O;1Y_WMP_/TW.?]UZ\_79X?/AM$O1WYVD\_/#= M7T?O7Z2?[5=D[_@M._RTD[['?7U_O'/6.GA[WMI^R[\/^K>^_?6YM=U)SSW_ MG']:Z3O>'QRU]P[2/7U+8SO8P:V#7=0ZZ,2]]CC@_P9]_1")""(:#TP: 4P+ MF3.K"9#H&/8V"HKLQB:734WG/K2U8CV9"A 6(/P." DA.L:(I.*.<6MM2,\( MQ[%'25<,JH 070 A*D!8=R#\=@F$5"!%A.! DWE+:$@-&!0E1*EP0)JYZ' B MBJ))Z?7&> 4("Q ^*B"T2G#OK1"$:L9(T)PF&+1)=8B-3IDQ(\2%$:X($.)+ M(,16L&A- !FM!<8Q!BVC!R&U$5@&38C:V,2,-24KE+ @X2-'0J\,2EJA%.>: MA<"5-\ESE(H-8K ME)%0X2;FMEL>S',8(55)H%EY<:BBO+.H;R3 M*)./&$>*DG/E7026/2RK0@3->+3$>4.LJ)JB8WG]O%11WK51WN7&3XKRSJ&\ MD\A(""SQ).TA<*F!.<7!.(_ *\FU#3Q$J9,_P)IT_L!(4=[Z*N]R7?ZBO',H M[\29ES0Q9<("8%65/+<.+,84!-'<(4L$(FYC,Q?-J%6AX?5*1+HY^^I%OS<8 M-$[ZO=@>SE-\]!&7\5FN)U\)[&4EKP)(,P!2Z]F4'^^D(-46BY?*Y@WG7"Z9 M<_!8:2649SRW^B6\25:[;MB*;?$4P*EA]*$ SKT!9Q)[4-RPX#B#**0$QDQR M7W1T@(@AW%E+4080B;26_KAY1^==C 6UU_?9$.CLC8"JD7??2SZ/+"='D2 N>> M.NDY!4^#R'W/ VAD"1!MK931,651UF5T0QO HLMKH\O+/KU8='EANHRG3^=X M*2@#I6D IH0"K8A-JLTP95$X3Y(N\Z90)0U^C75YV>?OBBXO3)OO''[6Y[,.Q73=3*UGX]7/VQ MA!(>;5V13P&E>X#2F^EB.LG-PY(C2,S0 PM.@%(T_3*:$A&%99)O;&+91'IN M5"J["/55YR4?9ROJO$AUGBJOXX*TGG(("8>!<6K!,.9 )1?0*L:CT&%C4S4Y MNG["K6CSVFCSDL^*%6U>I#9/7'\C P](2> Z:S-+9MK$J$%P:DBPV J4C#.C M3:SG#N(5=:ZO.B_Y)%91YT6J\U0Y7>%Y/IX%QCN5N'92;.T) 1]U$JLFUCM> M=5@0J$[9=PO:Y1]I)7E">,VC 0>]H>DT>G<_V;+6QTA7+%!P>2!IC%:# E>S M% P[V,I0-0H/;'V0RA%!%0;A, %F&[#*&?)U M5/[EAA6*\L^M_.<3Y;>::>PB<(Y-=CX\&(8#^"0HQIER!L>-34R:BBPJ@Z H M_UHI_W*C$$7YYU7^UL3R1XD2.S,(K&-)^:6BH&6P0 BG'.&DW"RY*EPEY9\[ MD%B4?QV5?[DQBZ+\MFJFBI_J>12KE$JN?R@,-ANU_6.P^^_=7J#P;\;L=\[O@B!];ISA;YJ;>96 MK.[TI9D;2>OO)*MBZ&8R=+O3\2WJ:8C!2# FGX;'EH&-40&A" MGI TN%X1M M:KD.Y1E7E$.O('[\MMP(V2#=<'I4D&392#*AS,0S)ZR-P*55R5\F 53@ 6(0 MW&$M)>&Y9W!3R.M9=/\NBEQ71:Y_L*NH[[W5=RKQSBN$CH^7>ST0VE>N>O MC&U\AS59#*U>MW<5M_C?5U :&$HJ^_4E\G-(%+)@/%$;"D.;G&6=!."\#&()4#D30DFL!X M2>M?-7V=A?(O(&9P+\I?U'J1:CT51T@PJZA5%*S'R0S3:, FI@[:>\.]),;( MG#/71/BZ8M^=_!>=KJ\-7H 77Y3U5RKKQ 8'AY5B3B4;[!$P8C!8H0A(I(PC M*)A(A!GQ5(5)N'$Y_W>\;,TD';W-$WN M_F52R9^59$?O.\ARW3D;]DV23[MK^N>[PW \2+B7;Z'?JZH1[::;Z8=!Z0\W M&^B]F@X4.&0)"=Y!,DD1F-4&E(PYRT]&H1@B(K>D),WDA:S!3D?)*:X_@JU MLD3!LAIAV83 6>RB8UJ H<$ \[F@&C<2D(S,<*$B$SI[6P1?W[6=>:NE0$G] MH62YH9>"$77%B*F(C%:!1I6KIP0N@6&A07$: 6&NB9;I-9$5*0K$9(-F$[42#&G/1 C>7 :$"0**\")X*F7DC)>*PR2]@-K1GJ1W<> M0]K)RW[O2WN0YO_WWVSHAM@>_CLKXOS!K$<12G^(>%5"LW%D_<^1P IBS818 M;Z=C31YS0Y2-0!/93HA% E@7%=B$58%HC[C*]:Z:@M:IJ579$EOT-ON;8F7_NK;*6MMC+$5_ M%Z._4P$/+*2UB3"!IB;DJ =.;H*G$*3%3"N*55"Y@9LHN64KI\/XRX@D'&+_Y-683FV=T^,/;QR?H8)K87#P*.R MP)C7D.2%@;HDEBR]H/#&)F?SN#TKMDM3D*P@64WR;PK,S05S$RJID@?(+ M'6&Y!:%,SB'B B2U1!N3K4]5YP!C68"N -WC!;H'.IE5@&X>H)N*@I%@F$>1 M \/2)9^9>=">(L#4!&\#UHK8' 5#<_G,!>@*T*TXT#U0F+ W5Q -W60G 0G M0CY(3CQ+C([%Q.A$@KP0543>"R9M;BJMY"JXKG6KTGRG&W[HDL5ED \WR/4* M==^\Z_2\UT]_=AONM-\/77?>&/;3U3I5*FC#^$^G@^%QZ X'536E1B_FO+:U M+1@]_\;0Q3<:YU;7'TR$N74I MRV2>]^.!.7O9ZUP(8S'P#QCNQ@O8[XW1QKOZ(_LV4$SA)T6L== MEYGOORX07^>,P!OP_ *="P3/!,&?IR,VQ@0D!5,@KA.TYC!A/BP)PC!J8H0RL MIAH,XX(H173 ?OY,PF7!WD(R">^Z9W&':TS=,$VWY'NGMA,6DP!71KDNHWP, M ?.<\-TX"4DSCTP_W)HGN*2,SW*-)5WC,23*_FD&;3?/1EO=N/'-MSGSN9I: MTM][I.J\#/TW&;06NYE#;MW+V3'];IJWP<7W5NOKDN*B0G%_3G$_[4[OXF"& MB3840S[J# Q% 7:47A,]R9EVD9B-3?0$7:\&OLJY-06"UAV"YMQW*1#TBR%H M*M/7_ )+%<^>BQK"!HO=+["@2M.P3-N0=2(.C70M#E M_L:WG?,/P2AB/** D,# $B2!TDZ!IT*(D$T)%A4(+: *3 &A D)+ Z$Y=R0* M"/UB$)KP("*Y0D(JL,%)8$)XL AC<-1AS9$AWN$,05C5 X+6*S1[L\9MMSNG MP^#G*1F[;K!YTRVN'VPN+8(U7F$%.&<"SKWI&)9%R:89+$!X$X&YB,!23H$A M32BU/H%GG#N&=3-XU3G_I(!0G>ZMUC&L D+W!*&I.J)(>.=HCJ$+ PQ3#H:8 M ,GM1Q(+8[7%Q"@@5$%K;*%8!H?N!T)4XEM<"(^<<1)Y3UI1'8"11^6B6 MPT0I1!6>.XY58*C T-K&L0H,W1.&IO-FJ5$"<1 X1[)TL&"%#^!T,@\,46QS M,:\Y(UD+!*&Z9<:6:ZS0-=8K#'ISANJ[ZH_@&R:-RGP,HTS50:-W.AP,33?? M1TE;?237>+1IJY9DU*JM4*JXM M7L,77)*U:/A#:OATZ]08I(L>@A6Y@@638)!V8*C5SFB19!LW-IEN"GY]NZQH M^#II^'(;FQ<-_Y4:/E6LP2,C)+,X-T>.P)@6H$WD0$70PH6H!4$;FUPTB2HV M?+TU?,&%4XN&/Z2&3U>ALIYYG-N?YV8)";_!:$3!8BE<))I99Y(-ITTDK_=R M*\5/'R!A\$ZH=->]JE5'I5K$#L:"N@9.!9=FPB5W)7K@?<"(,3 L_6*<.; ^ M(% FRF"TI5S0144/ZK<'772\;M&#HN.+TO$)]PC1,"N\!*:P V80 A-\/JWI M%$-*&V47%C\H.EYK':]%_*#H^()T?"J"H"FQ(N>R*H$I,(T$:(4\8$,5)CXHG1\8L>-1BIH(8!:Y8$%8<$0(4%P:G#0T6KL%A5# M6'2JUN]5'YWTKV]_V?Q/^G7QU<>F_['='=50)%<5T86TJOO+USF2=>[@*#2, M<[WC]-WG:0H:W=XP73TMYT8:3#N-[&/?=!HGIC_J%GL4!B$IICGU[9QUDS32 MA^Y@]*@J#&GRT['=-5W73A],"C$,515_"'U_;?GAT 1)3'QP)X"F:?,38-(BDD;=^I"[S3J[.QO3O/-H*,P1% M1"IG'5*>I?^M2#R&$>Z0)@)%^X'PC8L/'5WF")XD> +;#^8SF)AN\*GI?#7G M@XW?KZ['M!B_F_?OI^S6B8GQETW,2"\2!O?Z5=NJITE70S^_*XW)U&8LC:-^ MMD'_\W,1R:1B&1*R\CS+YBMIPG]^-YLWB?]!E^FU]+IJF;YXO;O=V#YL;>WM M/GO3^-_]O[=W6R_>-!N[K6>WZW-=!O^VM?5V>_=@9[OQ;+_U9O_OW>VM_,>; M@_3/WD[KH+'_/+_RS\[K@]T__]YIO'R]\WSG]>OJ+?O/_F]CJS5^E.][Y_6; MJFF7_*.Q\^KM[L%A[6__M]UNPNO>:;J&'_S[UN%.6:9Q6G&U7B\AMBJ,FL;< M,2>#\/3BP1^^/3CIF/.G[6[US=6'_AA?:XS+&52^,YG5W(Q>GN#-$S3"G'$ M?OS-XY>?5"]]9\A'KQ'V1"MRZ\OH";[UM1]=5CQ1Z/97?W35'[]&V?T^N4IC M?8@9$/I^:Z!(ZT=C54\HYBLS5J3URHQ5"[8R8Z7D;NOUYG,JA/W@G,I/@QSZ MVEMOB&*,+&RMCB0DFE<-)QG$_]C^[YLO$U<,_7YRB]X,>^[S'8XCS)(A/[+/ M>;?Y!\7YUW".CX][W85.:+_W]?O@VFK-R58:;/933*=:=B>F[:'=K1X[<](> MIN?+3%4S]3H,37K25W,3QJGG1S'J>:GESM/CU;1="^7ZIEV MU=#E]]]R*]UKYR,?ZP0>](9C%1QD>#KJ=1)"#\;.XVC)_?>T/3R_,E^W'/14 M\QC0:U;B3AU<:CZ[HU#[7<[TW>6>']?<;1WW3KO#6A&0M9SGLD;KM4:7^-;U M.H-ZLXC^-!W3=:%AAHWMX$+>"6U0W&SD;=9YCJ;.UY:P?NWY9MO/%B;GJ"A/ M#!&,*V&5B5PBYHF-D3/W83?/+R84_V@;.[;/@H=OH=_[?@>[OGO4K3<7>]3_ M?&X=_/7I_;NWN/7N]='^]JNSO8-7?/_=*]YZ\?KX_;OGGP_?O:*M;Z^/)WO4 M'^G[[8^L=?R*'9+WG;Q'_?YXEQ\>IVMMM]KOM]]W#LG;]/GWG[_?H][?]I_W MMS^2]]M'G]Y7[W]_?/BITW[_[A7:(W]];AW_\^G]P6?T_OAUW&N/]Z??H*\? MJ(LT"NL@22< "Y:!BD8"1B)J9@UCDFQL5HR/_'%MB_I"11XBQ>)^*?:UZ7LZ M9\WP1]OW=.;[7U%@O=[V])>CZI2+MU.Y=0569X/5;Y>P2D)43GH%0C$+3. $ MJU810-0(;?*&.@D%5A_PX.+=&VG>UQTL+/%GIQ<"(5(&K;3VC-E$0CBR5!'C M")?*F;OAV4^2'0M5G!/3R(0J)G.C&7<@/1/ :***!@<)WB?6R#5G2JJ-38YN M[-1<(*TPQ<(4E\04[X^LA1$N%CW9)7H:Y%V2" ;', <6(P,= P?'K<$F>DUR MN4Y>@+, 9P'.AP).%+2GE%H4%&/$YZ*ZWADI@B0BX&@70TD+JLX;OMQ[-BFU MY;WPB'I055\(; E8Q]):QI%Q;IAFU&UL8J*:FEX_1U?0M:!K0=DO/CH*DDN3U4R<-,,TCV.1<@#=":9=X:L@\]?HI\)F[SA8, M*QA6IQN? <(2$;1!.\85I4PQ;1/S,%0R9'A@P1?WNRZP-D40C7/.(P3)U7:) M(";/6PE*@'+.,6>1&,^3^\UQ4Y+KX%88XJ^JWSG"1'$#*%9_MW.MB^%3T-?/ M-3]HW9Q6&#;R"8QY2GNN[J[Z;0NURA*Y7SF8VK"!!=:#*@)>90'?X1J_,/.F M+*$U6$)%P$7 18Q&(;!E6 26'&&J*;:.!X&EDUI']7W15_J# MH-X,KG%BW[O5,>B_$P4O7O$L7O'YE6T3CZ- 7@JP(A!@B&K0#$=@#BGDHV+I MQ8U-TD2"S-^2*BD P3QG"P2##"5(@(*>P0+NA> M0W2?CGDR0IFW"+C2"%B(& Q"">&4A//Q"*&(J8JI?MXX;4A2D,D0193F5 M+*)H)$8R,*D]$SX@>@?N/@-EW_*?3@?#JN? 06]2%/&E:?O=[K-1)<3JA.N? MF< \F^(O%:_9/\D/!Z]SD;9!>QC>A/Z7M@LOTRSU_.O@>A^[U16+,S"#,Y!S MNJ;.'R09$XE$8D9X WA2R=OE<-%PI\%S$5,3V ME5U A*Q8V96WLE,A-XRC7! L..@=*6 0U4:ZNM=,37S\H^[ER^G3-W M9+H?JWY!7TV_;Y)^Y39;Z>C0'GV@A:T;V>(J:'%U,MLNY6 M<"',5M(*>TZC5%)%01F-01$K%*F"2$E#&*I#1 MV, 3&]'$YOT_0DIS[E73][4#_B*F(J8BIB*F(J8BII(J-%\\(_1=>U#%,ZK0 M1:,WBOR57*$2;B]B*KE"-5T(2P]AS!"EF-Y N!DV-O$-!T"*"M=;A0O2%C$5,:UF MSE<:,;AJ,/-@9A M..R$_+'\J2]AD-\S"I&:KZ;OYRKGMH*H]^"!^K*?\BC%5)*\5B1".D.2U^N$ MIOVV2XA:<991V'3$:EIAN!]'3SSO]0_,V;OV\"A7MDW37]*[9B(SY]/I71() MSY+T$H&QP'+'0Z55;C##8Z*C$7$N$I5IHAOZR:P/EJRGIJ\=Y*^GF&:IIK. M0.I]JNE\A\LCK_)[<"Z8/!;DR M"&@A$R:;]'%JST M#@16S!&>A,UIS;1_09F-M6ZH_:?I5.F+9MC8,WUWU*"XVX2H++,T"2V_&D)23E+R/P02F >=:F S3 9I#%@:'@6E)JIPZ82L9XR]'U;R-FG=*0W^P\]_3]O"\P.IL ML/KM$E:5"8HJ;L!2G6#52@X/W*6:*@10CH?#6>: M&,6LC09;%YTD,9"[X=G/:IL6JC@?IDWRV4D2DK(T M':YB:%%+3$")*[F?#, M4N8LW]CDK(EO*)Y>(*TPQ<(4E\44[XVLA1$N%CW9)7H&@R7U1($22 )SFH+! MG$-$PF./&/8J=YXHP%F LP#G0P&G$MA3::BC4C)&0VZ\)IUE2%A"I.6+H:0% M5><-7TZ=YZ$"K@^% MKHG_"*^L#S$*)E T5"B$@Z%1"Z8\+>A:$W2=[%D;9;6-4H)E,21TC3P]<@JP M2 ;2)8O(D-G8)*@I:?'Y"[@6<'TP<*5<2DDC,AH)A@U6-@HJ-1?<1XGQ#ZAK MP<\%X^=4QI\E/OG]D0!VG *+EH.)T0"FGDL6O=8FX27$*Z=S27H?&# J$S'U+$)P2AC- M-<,2);>?H29AUX\C%W0MAZ6O"*45AHU.;U!:\)3C!45,Y01T60A%7XN8BIB* MF&H@IEEJ43F.G-.&DIA<-X.H#5)10HQ4T49*S/AT';LX72P=;P[V#W9PCDUR[K0\^ =&W@) MM4Y8E"RC3DN)>&!!6U R'_U+FHHQ4D2)>D'MX^ZS4L6/P9I!R'=_?!*Z@^K\ M?NF)4@K(%C$]C@-C92$\_$(H8BIB6H5"0X2K(+W544?$TD.-K2-!41F8U#\]T7IJVW^T^,R?MH>E49S'_S 3FV11_F6ZA^#K\ M][0]: _#F]#_TG9AU&GQ=7"]C]WJBH7PST3X=X85Z;\@_#XQ?8,\*"(L,&H% M6((4:**,%%@3@OC&IF@*>3T?J0!#O8&AX'<14Q'3 YC9!83!BIE= S,[B:L) MXQBFUB:[FN-JT3$P+L8D4A:8=3DO6]?/S#[N_*^=,W=DNA^K)L9?3;]O3U*?DAU6-FV*F$IV6$T7PFSEEYC'U@OKF/..!6DL)C&H:#7! MWAAC[T!<;DAP'_7>VC[MI[D;T8I1!:9GO6Z:JD$:UGX.FR' MLI4W&^78'4XEPQO$371(0&3> 4/>0'+T%02KJ>5*8QWDQB:YH2S3^H#&>JKT MVF'[>HIIN6'9.\%NU0^QH.ZB47]L]$;[!27%L&S2%3&5%,.:+H0ZQSVG MMUTO\-477C$3K]B;CG4J'@B*BD% Q@-3SH*U1H.6@F%34& MBO54X[7#\_444UUCG05I%X&TT_'-X#%AD0L(D>'DP8GDO.4BRSX:AY1,R\,E M#XYP5J!VQ72X0&T14Q'3NL**=P MC,8*53>+^+@3.[-J5.V=-&-PQ''VP,PG#8"?EC^5-?PB"_9Q0G-5]-WY?B@67WK8BII(?6 M=2$\<)CT=0+,?MLET*QXR2@\.F(NK3#)6K).L:[<$65'^4J+Z>8IJE MH-8"HJ7W*:CU'2Z//,?OP;E@\GR8?.48OJ484R'!*"6!H1 @Y\* <%+Q!,F: MN;"Q29M<7'0BIB*F1U2)LAC.I1C.2?15$H<=\QRL\B*Y-%8E MP^DP>,TU]\F505'6RG ^[G32Y,JG/[L-=]KOAZX[;PS[Z6J=*LK:,)>%+)I5 MB'44ARV)IF5_KXBI))J6A5#TM8BIB*F(J8BIB&GA#G,DP3 >I4*&,8>C-3%R M(KGC6&-/R"P.\U6?>']X%/JY[%P_'(7NH/TEC)HUC'V!9V-7X"![ J-Q;G7] MP<0OF-2WN_">7_;ZU0O#Y&O;TZ&QG7#0>YF\[.ZP.-,S.=-OAY5#?>%,:QY$ M$!&TR,=,& &F/ (H-F!0-6"0.FCFA+ MXY#Q&A2-'IA3#I1!%KC7FA(=*6*L/ABPH$3&6G=K_]-TJFQ%,VS\==H-#8J: MC:Q^\Z06SM?0?H4:N]^8Q^29$5A:(:1&S!AI,>:>(J^]D9Q',N[M_I.RO+%] M%CQ\"_W>M03LZDOW3X>#H>GFJ2R(-!,B7:!1E:_D"3(H4@Y*N$1*)--@C7<@ MC'/8>D9,H)<>R2IW=9]5-1]XL_'70DSM4/A?OTR.,\BO5M!ZG3_^ZIY MVS3T!SO_/6T/SPNPS@JLYY? RB(F)#G\V=NSP'2PH%AR^8@V"!GA?"S 6I+: M'S=3)$)%S1/1T,@RF?R@R)FUR$L3@W)8W@W1?I(T4NCBO*@VE=YN+>;0*VPQ<(6E\06[X^MA14N&#_WGTWJ MQBN-L6(.I,')W=;(@<$&@[1>D&BEUL(D_"S06:"S0.=#0:<4D6MD-$>:LFBL MX5PX&ZC/S=H-OZ.C_3-:6G!U;F][ZHB/B8HSF3BI(\8!DS* X5* 9\9Q(1E6 M"F]L8D*;\H:SEP5>"[P6>%T2O,8@3= "&:84XU8K355$TB,375!<%7BM"[SN M3O:M-9/*"0?"T@2O6$?026C J%&2"1>()@E>=9.PZV5 "[H6="WHNB1TY0XQ MQK6P!(OD]WN# PF"4Q.?F!44&V-"MX%XZP3(A1J6AMDG:H0Z;B5 MG$A0GHE$2)$!@ZD$I!55/GD5BF1JRF@385+@M9RA_K%06F'8Z/0&I0-/.6]0 MQ%0.1I>%4/2UB*F(J8BI!F*:Y;2=S[7]I-11&2ZN:E=A5?L0W16.Z^3Q^94\MT"TF"2H, 1 MJI$*5.O J^E M*V#Z4&!Z$0?;_=8Z>/M!B_!^G MDMY?L0\D1(TXY4 "(<"4)J!8$&"3OZ8-H2)RO+&IFQC3TF]HQ9"A '@14Q'3 M0W0,GC_85>SL&MC9J=#:MZT/7$;$K+4@@G/ B'>@%*- I;&6.&HIB_4SM8\[ MEVOGS!V9[L>J%?%7T^^;W'^XW1WV,>HY-*S7C?- MXR"->3^.'@_;MI,8BDMO';9#V>Z;C9-\OBS$U-K^^ %IXS$C#%#T*G<;5F#S MV4S%""$!!VECV-AD3:RN'\A<'U!Y9"I_PXF5^?7]3BI=]=HK&KUHC;XH#90U MFO"H!;(2O/8Q=ZE%H$1Z%(7,Y3Z#-B&7L"C:O+[:O-P0?U'U9:KZE<"]\58X M[ W@I-3 (I%@"94@,?6>Y Q5R9+U5DV"KA<#*PI?;X5?.]>MB*F(:17,YW(C M]\5\+M=\3N+Q^]N['ZP+/-E*"I9F"RID "L$!R]T1OM7Y6/#B;2W@IK002:3UXM[%)4)V2 MJHH2%ZPM8BIBJJE)7$ 4M)C$99O$J\%-%H5%/!K 44M@TFO0R1J""80&[:C@ MBM3-*BXHU?C.-71]^\O%M<>7& "]>23ENM+N-OTX[ MYU6G\?1B#%FMFHUN&.:W#OOI.\>*[GJ#X2 _^:^'A("7YKPZHK ?+\$@W]>S M/+BB[3-I^\YP[Z(?V,'6^=[VJR_^Q3_,_^]?G?>D\\5^ZM$]DL;\XI_CUB?_ M:8_LH=:WSR2-G:5Y(H>?WGX[//XKO?;7T?M_U%FZ_S07.V>M3VE>M]W7#UI* M:5A"#>^KPA_!@XF)4 NFHZ8>V6CBQB;3M[=I^#UIUJ/972R;P$5,)1M^=1;" MRF;#I_NO7BKF=E^>&0N/_BH+'&)#5,A'# K(M@@'7!'6*1&VDCTQB9O M,GF]F\;Z ,@C4^\'SGPOVGM?[=V_2G8_8&JB(8R"=]3F_F$4M#0<6'0^,)D; MPZ&2Y;[6FEN?+/>BUO?V82\W<7:^[GW:0A^6]5'N M<]H9!M^(_=YQ%9VO/M@8A.&P$_+'\J>^A$%^SRBR;[Z:OB_YS&43N8BIY#/7 M=2$\<#[SZP28_;9+H%GQE5& =,1:6F&X'T=//._U#\S9N_;P*#?+3#-XW>X/$KP^AZ<"R8O*G+VBGW0T41O(P$E6JE-9L9QULYQ7LZ2=9=@% MX\"&'(6U 8-Q!@$6R81ZA!4SLE;&\W%78T[^?/JSVW"G_7[HNO-1FG.G"K4V MS&49]$D6M#DKI9E7>S>TB&DEQ%224.( M6B$#0U%D?PH18E'P,DAK[M_>>W]X%/JY:5$_'(7NH/TEC+I]CWV!9V-7X&!R MX'&KZP\F?L&D.]*%!_VRUZ]>&"9_VYX.C>V$@][+Y&EWA\6AGLFAWDT.]:OI M4#0.1DH%>7<76! 8M*88),$,&Z20X6%C4\WC2A<0J#$(+#)R5D!@E4!@.JKV M\8,U7#$G/$0LL \F89CIWYT8^XEYQXPI#CRGJ2EKZ)D2EB$R?:O4NZ=FR?!0_?0K]W+5.[ M^M+]T^%@:+IY*@MPS01<>Q<9VPO1^V\ MNYLW<$-_L//?T_;PO,#VK+!]?A6VB8B:Q0#2* _,VX38W*4_:>*:GGKAHR^P M73?8KE<&?N&QM_-8%+AA2C"$,64B.,5YY"(B@7PP3MB[(>+/CAT6,CLG*EX6 M.?FTR_>^?J".,F95 (="#L9) \9& 0)CQX1@$MN82Y W,;E>*J& 8N&R#XY2 MA\"W@^.4@6\ MYP5OA8DR5#A+*68"7@%-JG,G7ND M \QU@DW. I@D.R!(8>$#,U+EP^R2-[DHP8G%Y W_7F6.7W0\FFHH-KX_1I[( MW$WLI#=HYVE^V@\Y(_U+^.-KVP^/+I1SZH/CVT&3CQB;1GXZO/TC4^-V(2ER M?_EG!4@>$_VN_]/4[Z/^Q6!.S,< MA_,9S QC?6IZ7PUYX.-WZ_'@/[^;[SMY?;^ZCTW_8Y)0 MUBQ^E0\L:0%>,W+5 GSQ>G>[L7W8VMK;??:F\;_[?V_OMEZ\:39V6\^>7+VC M!]6>FP?_MK7U=GOW8&>[\6R_]6;_[]WMK?S'FX/TS]Y.ZZ"Q_SR_\L_.ZX/= M/__>:;Q\O?-\Y_7KZBW[S_YO8ZLU?I3O>^?UFRKA3?[1V'GU=O?@L/:W_]MN MMS$\ZIVF:_C!O^L_W*PM[>YI\-?'FJQ7I5.7B%Z9H32RCCD9A*<7#_[P[<%) MQYP_;7>KZUK[,5#53K\/0I"=] M-3?!]+NY'&69G/$R7J!:-5-%W"H'JF7=4Q^/VW3F\PN+9] M\5@G\* W'*O@8"I,/'9H1TNN"AE?F:^;#2A6\QC0:U;B>BSQAG!BS6=W=-3F M#FOM3O?\N.9NZ[AWVAW6BH"LY3R7-5JO-;K$MSZR>BS;P8W+L>!>,::TPH_LEQI_4\BWK\NIW& M]NW]NQW6>O'7I_3^L_?I,WOO#NG[@S\[>R]VSP^/W[?WC@_/O]^:?O]B]^O> MIS3>@X\HC?.LM?V\T]K^?/;^DT^?>_OU\--?[??'N^?O/_T5]R[.H;Y!7S\H MHJ5)LP]4(PM,$ 5&40&(812YB\)0L[$IR/6&OBN['WTG$[("Z4+W!)':8>U] M$X+N\D!5"#XJ1_&"(*TPQ?D0 MC5PBFI0.&V(%<"T,,.HU:&P2HEE+N1$V(J4W-C%I*E8@K9#%0A8?C"PN!UD+ M69P36MDEM'*1J"*C#%!@'IBR$JS@& 0R(OUX20+9V%1-C NR%F0MR/IP;KB5 M)*(@ L6!$4ZU4-%Y+ES$@IGH"[+6 EG/]BZ*.6U],$E22% .&46!8>? 8J% M1Q$$59YJ:Q)M14U.>0'7 JX%7!\*7!,_]8$3XIR/+#JLHT9(!$8-$Y)A5<"U M)N#:GH KESH+#5Q@N=R2D:"B23Q6F*I@%K*<;FQ2WJ2Z;" 5<"W@^F#@ZJSG MQA*-!7:,2*XQ9Y((HHQU7'-Q-W!]?%7SEXBKK0EI#<:0H'P +'7"5>\M&$8, MA*!##$2QB-P:5LPOP%HO?"G >H=B'-0:SQ4.B0CEGFJ62JT=3_/AC&2"%M9: M$W2=8JU4I/7*$1AD!3#*)5B;(%8YBS0S@G$3-C8Y:R+&"KC>L=#&+ FA-S<' MO#,43ITV'U]BO$M_6>J@W?6A.WP*ND+OAQ#5ZS#L]_*2^1(:YN2DD^ZC0I)> M;/3#^*Q2^]OHN=]:O6%HT._.J<^44;"Z_4MG2QH(5BF>B_@Z%)DAU"B=-%L5C4I_ M\7JKYMJU@;_#-7YAUM?J+H39,#JBR'%" .NBSIU-DLOJA.%6D6!)^K,D=M4! MP">)78[&( @5@$,PP&S08)EEP#FCR5=XM+NT0-GN0/2:24C\FAY1QC8()AL,I%"-HHIP.60<91_M#U+>X':>E> ME'V_>W,:-M8]^%99_[ZT[4T5XL#>0O-=5BN5D M-+](2F(Y*?L?%U:)-D5J2,JV_.GO ;J;;$I4+%D;*6$62^+2C<;!>?"=$ MJV54VG##(B%55;Q0ZZ&RW<04!C:KX)PB'(@'I76@M)%C9 1SA"H-%E-UF=*6 M;7>]-??164Y%3$5,&[$/.E,I9@SE/'!/F6)8P;9GI&<\8A5+F/O!M\!.(,:& M2)*1B:Q,O-4PBRR('(5*TD""8U6PEX>Y'TYMGT(%C"W_X70Z"[YGFU(8-AP. M1JF,6(IAG,!%Q[Y4POA>'QFQ6$HON::>#L]>D#[FJD2,2SI.2<=YJ'2< M^P'6P@)OB*R+0AF2*NX""TA5#CB@E1RIJ##"O+)!64RKU$NL%,HHA3*>*E%*]X,T1;QU,@]T$5ND='1 Z*9B)(/ M A'ME-(J<,']LQ>4]&5)+RQDL9#%AR.+WX^LA0_>+GHN8MF:&@%6-4%16(8X M W,[I: @6V%*HV.R$A30LP!G Z&QXQH1G'IV6ZV1-LF-67%><>:#"/'9"Z+Z4N "K@5<"[@^ MV%%MK@C04B<5(]P1I8BE)+J K=/.&E/ =4W =1'(5L$R@A5+7DL*X(K!^">1 M(&J(-MIZB6FI@U' M8#K@X,K9IP30JBW506ZZI5G/L($5=@R(P0N"4(/CJN= M.A@R!EPQQ5&4E"->28J4-0Q%$9CAA&G,2AV, JP%6!\>6&5@,D:NN!88K$ME MJ< *M#006H&A68H.KPNZ+EBK]\XQKCS2,3@$HN.I-&9$C =EI64>L-#.O?P7&"M=GZ;_&L01'P)@MX+:HE ME"6TR4NH"+@(N BX"'BC!'R=FAG>JZ"4K:3GE(>0&C12,#8(J3CQ,NCWVQ13 MC DF*/_";J=X!K#OG9$;'X=?@8(7$_@Z)O#KI<"-YQI':QEBV!C$M6 HG>=! MG$E) W7!Z>K9"]X7^F+YLFM7SBC*O_[*7]#]D0OX.NCNM&?4<\\K*GB(VGK. M<*3:$B<7!J&;@3Q""'(P9,-PYIAP4B7%JI%168B,U!]ULZ=;X1 M[L7LZ$?63$-ZUN.3,)KF6KDW.7&^@6#U?;O1W\C]H8^3%3%MA)C6XM1?60@/ MOQ"*F(J8-J'NDTEI7 &[BDO*5145#IP[Z6@(&G,6K\#4KT'0Z]HXQV$TFQZ, MMV!>T_#,\#A\FG M@0N_Y9HZ?P0W/ASE*Q;J?QWJO]SV4W@:#;,!4<\XXI%)I"MJ426=8*;RMA(X M47^%+Z8V%%Q8;UPH\%W$5,3T +OL+?C#RBZ[\;MLQ\$6G10A.-A6/0F(>T&1 M(M(BAE/?@.!PD&+]=MFGE*?WGP6^?3F"*:\2J"_0L MQ+D?W\#H2WC@6NC5[5OE):T" ]A*TDR%QQS2DCG$*37,1<>TI9>5="Q-$S90 MR5=X#=9*P_\TP]-0%/R&"KZH+*B-<\H9CRJ=*@M2CY%R% -748I'+V(D]K+* M@H]"P=1Z- ';2EG-A>#< N4-NB(5X_^]J>^B MBIR _WBO/%(<=GS8[2W2$:B IL%5E2+>!PSJ6U3W\:KN_88$BU[?I='>">Q) MP8@6DJ&*!8VXMA.G6NI(A*!749JR_:O=[:7?IQ%3$5,3WZP%[9*^]R MK^R$YPAW7'.ND1&IYF>E%5+1*(0#!E[,8*\T5;U7KI,1^Y3RW&&Y3P<^3'+8 MNG=B!KXW&_=^F<#/[&QJ:MV4M/>2.5+$5-+>RT(H^EK$],C%=*T(]LV=7-\3 MP;Y*:M[^["A,"GN_!GO?7Z[87QE"% >ZGCJ?(,Z!PAL"%%X3Z:(UA'JMGKT@ ME/65%#>(8!<%+SA5KMEW>4B+ZE3UU%!B,/J_0'I#."/(A'[,B\ M#I/#VOTU[4V"J_4#+N'[O5&8I3SVV03NT*B[&T]GT_3B_ZR=P_O0GXU^^*/[ M!"_38/?";#\>+!XAOUA4_SJJ_QI_;G,]X#K#\.\_SM[]Y4\LY?+MP9NO>P=_ M?MS=_IWMPESM_?+NZ-WV1[QWD'ZZL[?T/T=O87R[7_^(>Q]VWFNJ<(XEXR@J MQ'UED)'"(QZT#IQ*Q5PN 4;XY:U;_@6:]63B2B7\5\14TIDW9R&L8SISWADO MQ($/CD(WG;FSJTAP ?IU36?^AO[F5(ZBOC=3WT4V\/4^]%98$5,14R;L%G>HW>W;)9WNUEV CR*A6"=C @D*Q&7 MTB)3L72>WSN'5215)=O-\F* YW'D,Q.Y(MQS/G*S5FI[O@#1^'@PG8XG9[W1 M>!92LK,;'Q^/1SN285#$5/*<-VNP>;,TZU,-Y(R4/"CFK&>**>:1\8 B'Z!7W/H6*G[T0-S;1UQ@S M'J=&/SIH?YQBNE]'Z?>=5BV@>QN@F___.@'OUOM*5Q:'2B!,4R$F3BNDC0M@ M_U$G*\6#3F$/P7"!W0W3YP*[14Q%3)OI&2V[XT/NCF_GNV.TP&>,YR@Z21"W MGB #Y@D*GF/O*NM9L.NV.]YWPOO=:F.U4AM_,D,S=P1+SR"ADC!0I4Q !& MF75*SJG%I1GU#T-W'G/3Y[N%F+6#X?^Y,SE>0WYK!:T7V>"=XVHBATT)HU?_ M/1W,S@JP7A=8S^; RH4(Q@N"L!<"<2\CLH[",N;4FQB-KG15@/6I'U!YVDPQ M4F.8L82I8+BQ7F/JJ;0TD&BXLO%JB/:M^H6%+MX0U;HMQ$( CF@,DJD\(:": M1DIICK3E J1)HG<4S%C<5^QB>*V 6F&+A2W>$UO\?FPMK/"6\7-_<83 $4N, M<0:6!S;I^'I .C4^<"H:8J-6AB3\+-!9H+- YT-!I^7:L<"JH(WGC&*KI,,T M6(6#9SKXVZ&E!5=O;&UWL@] B!.2N$T%P24N!U7>!U9PZO(+.*5($C M$@5#/'*%M+0,*0S&A9'18T>>O6"X7VE9T+6@:T'7!R.O1 B@/XY:P;@A#O13 M&ETQ7U5&*Z5*E&@-@/7W.; *JB0C3",:@D*<"X.,66B1(F*LA: MD/7!D94:IB@C,>)H..=,.2J#=8H+X3&SMO#6=8'71=HECH%YBSV*G%0(K N) M5) 8*V%66\XGI9^7N4<01%3.>=> M%D+1UR*F(J8BIC40TW7ZR$CFN/3"6QH=IX[JZ"HBB*JH4(:2MK0';X_1289O MHX\,T,>=D1L?AU^!0Q8K[EI6W,Y2]($%0IW #/DJ>,2=CLA8)9 !26D2! U2 M/7M!^T1>##Z4SFIKJ\,%:C="3->!6JH8PX9;RXCA3#)M 7(EE8XXI9RJ"M2N M)=1V'&:"*:HI1\K%"H&<(E+&2,<4MDYC*R9AO2L MQR=A-,UU2F]R5GD# :F4 "YB>K(GQLI">/B%4,14Q+0)]8.P<4P2%RRM*DZ4 MM]Q3);26D5/+*WH%-G[+?7/S8$OF=?LGZ1?IW^$_YX.IH-9>!TF MGP:N*<_^1W#CP]&@%&6_-KW?74J3)U$ZIXE%C#N!>$B]B:2UR&M<45U18T5\ M]H+UI>!K5).] $/![R*F(J8UW69OP>E5MME'L,UVT\ZJ$!FCL#2E1EP)AFRJ M0 Z[++QB%.=8K]\V^Y1RNUY]"1,WF(;4YB0W,^F-:\4HR5XE!E/$5)*]UG0A M7*_ $O /X07S.G#/0U4I60EKC*@(E5J%> 5F*K+SSB6CSB]VZU M):NL8I$PQ(P'&F&81Z:2$4D?5>1 -0T!:_UB(.[QP,3C5.)'A^:/4TSWZVF] M>J7V@K.W@;-=MRCEA"GG"=(^]2ZQS"$E(@"MDX034BD XF=/FRFF4\-@ M]40:->?,21LPJ:I(HB:124FNAFBE6\PM59%Q;IBR@4M/I)&5<\&4*-$Z M .NB64D44E2&.>0C)8A3[)$%<2%253C%^!S#I:=]0=:"K ^/K-8&746B(Z&8 M.VJU!)4E)"I'A,&B*KQU7>!UD71)@Z.42 !5V/U2LQ*+=. .*:"S-E GB8KE-!GXM**Z*)#4'P M*BAMP78S3G)*+>.R/3A7M0?G=*F@_]!6W-M.].'5E_W?W]NH6$IV1R3(9,AQ MBBQ7 >F*1!D(#810,.3ZA%PTXTJ_DK55XX*V&R&F:_4KH53'&'&EA./")C<+ MI=()XK&WT>""MFN)MJW/[/#SWN?W@7-F*^60,$HAKB-#6@B*%*,6&V$<2PKHX/B7 :# M,;>!^2L0\E)+?<,9ONLDRV=_"M%>.NHQ8L8*Q!E3*.4P(&RHD5%A'1U]]D+T M";UQ+=2"#07"BYB*F#943/?K^BH[[2/8:9=\:98&36PNE! -XL9ZI&%1(*(" M,9X['HA>OYWV*>5YE<8E)1A3Q%02OS9M(5RS<8FK=#+Y903S7[)HJ0V*8;@T MO& YO0(Y*8U+[I5*'"XJ+QV\$N\-==A2XE!T)G5 TQP9$1BR#IA$.IW)*UU: MEVR>&C\Z/'^<8KI?CVNIU'Z_2'O./2J5)L0HAC3WR3VJ%5*,!R19@+TSB$"" M?/:"K%.Q]J+%!6R+F(J8UG1/O 7?:-D3[WM/7')D.B^92/:'"Y8@'JA!6JJ( M E<\!H:-TW[-]L3;3 LD&XR2 M5HY"K:Z?![.CWJ41\U"#>,&ZTK:AUG%OA5%/T\!N9 MK*69ZQU9/Q^V%LUC':6YZ=#07N%0DH=XW:I4KMC6'[; FVL:]")4*%' @? M<#5$+*UF[Q@56U?^_O86>Z^=H[X"[DJEJ1#7/B)C!$74\F M\3)85S>; ME1O==.9106)ALH7)WB*3_7[<+HSUEK&Y;6.;L1GDH8/P%CD,I)7CP)!BA"$6 MA8PD,E51L^&-; LL%U@NL'Q)265OE711>B\XE[8R7DG#;53.8V6LN!TZ73#[ MQEZ&^;&6NA9!U"H2$1#3TB >(T9*&X8PMY4G,K#*ZF"$,JHUIP6[UP6[=[K8+6RD("F-)'8,<8T5 M,MYH%*G 8!153GOR[ 6M^H*P MT%N@MT/S[H%A%4C"HLJ)6,4 M\%Q=D7:7N-Z=HG;;W/=!DQ70!=F]Q_[C=-4WUP%'K&I48L9G0&4] ;C6=P=3.!ET>] 8SL M<&*&O1,SF:6#V+.C, V %>;4#V:Y@TLZ/5[WG,W@A M'QM\/I?G^;EI!L3I\TK H$_&TURZ]8=)&)K9X%/X\?/ SXY:W.I\L1$U7GS% M6!C$Z>SRKZS+O//EV>C^FT:;\4XR3"OEK,/*<_B?E5H 5Q8.:RIQM.^I>M9^ MZ6C2/L&).0S(3H+YB$R$!_S!##^;L^FS?RVO1UB,Y^;]_)1=.C$QWMG$U'H! M6\1XDL^G_@!J'B;I4S FLS9CZ1U-TL[X?[XMH@I4+$%"4IZ7:5,%3?C??YD7 MJ\3_H,OT DO(R_27/W:V>]MO][9V=UZ^[OU[_]?MG;U?7O=[.WLO+]?G=1G\ MF[VM-]L[!Z^V>R_W][9?[;VN?WN]_^O.]E9Z^?4!_-A]M7?0V_^Y]W+K];][ M/_^Z_]?KM7^P?^R, (G'IW -/_WGI[U>Q5]+C6]]&W\G%SZWM]=EI#GDE7?==F_?T^P.QJLOM)EOW%\ZIO) MF?K"1U?8=?6"OQ\31E_)@OEY/$E\I#>"=WK'\/&C:2\ 1/O_M9-_O5@Z9+5$ M)6\Z71W#_#)"N8)3KO=<@@%'+CV$=LT'?FH3A[]G=3VHY^1JC_;23(]Z<3C^ M/.W%R?BX-SX)B0B!C9!,Q$] N,/E-9=N?\W<]O):NLY> ]+\[51O5>F/6& MX^D%D5WG$1_8XW>U![VVPV\=O'97>[3K=#*V2@KOK924:O"VSW;/]BB>Q^&1WM__3'] M[8^?][?_/-K_Y2U]^^'GP<*%]VZP?W H]NCO^-U?;_#^ 8SMX"=X[]UP[Y=7 M7_:V?__\;OO=IY.M\9D<42<"E$%;'WDE> 1E5?51?KIVYR1_5U!I9. M [7>;-R;!- W-QB"/=P0O?1J^MTE'G\R&7\:@&W;BOLER]?8E;HR MVAKYK8Z$RAYUC3UJ[W6',2O/*&Q1&(&\".).:&1)A9'DGC O0G1"/'O!^H)> M/&Y;*O4_%D6^!9Y9%/DA%'E!-GVDG"BMD3($[%]A"#)>4"2HQ<0'+*O G[T@ M?:77J5O8K1;K7W^:\9/QH#9V]EB*[J^W_VT9=7Y+7'X*M_]Y/-D>G]I9/!UN M.0]*21?/+H]07,W4_&C$4&+H.#'73)006TBJM$ F53)5=&#(J M2%19XH5W.GKIGKW0*Q+ZBK_BL>CJ+1.)RRLS%1V^11U>4 FE962$8:0\=HA7 M@B*E"46XJGA4G"K&_Z9;UL;G2JP_?Y@F F&FTS";YES,X<#8P; DW#XFIM@& M=5,&=AA\2J?EGQ8YO.>DF&N8KCLC-PE@N6Z'^N?.J!76'W-9E=WG.H="ZIVG M9I%;[YTFRA).4.45F++&*F1,)(AIYEF@Z7!(RM3#?<'7Q#]>&.3Z1;R*0C^P M0I_-%9H+8:6C&#$?%.(N4J1]M"A0YGC@G! C4QB;L#71YR<6[WHS OHX#+[# M-;[/$[6Q;O)-(ANIWE<:YE^#V=%+,'O'QV&RE8R! E'7@JB=+N>H(I58ZXB( M410!(FFDI8W(RDB,Q8IXGT\'4%$R=3='K=<_QZ:H]QVJ]X*!$,ZK$+%%5=2@ MWJD+O*6R0LYJII2VFKK4)Z*OJQLGTI7@V/=JZV^3<&(&)W9M%'V]2WU=L(;46E=2PY "[4S5LL >8((BC#E(C0=#3?7LA:*T>"T>D"Z$ M.BN]#H6-9T=ATG.GDTD8S9H867%EK*LKHQ%A>]"@.5^P-?+[28S9ZBD =CT M^[U+. 336&CGD 8)(QZ81)IRAEB(PE(G315L,GNPO F$%:_&VEH)M^G5*,K\ M$,J\8",2F(*KJH"$"1IQDS)\%:]0( 1@/%8R2)/"HL6!\> Y&R?F[.DE;#QD M-N_E$=S?:E$4X+D6\+SILHA4JJ2*AB+&,_ PA13U$44FX"W#%4['%66U3G63 MBMMB_=P65V8217=OJ+L+TL <2$=BD3JM*L2IHTC79@"HL52*^WRV3UQD#<6% M<2^$87(:EA)XGY:S8NTX0Q+'KPMI%.BY%O2\[=(&3:/FTFED(PLH!6 1;!X. MP2)51NC4 !IH [DQ:RCNA\(:BO;>CO8NB(.U7'$E+3+2I=)#(*%T+@@I!M2? M.U)5N'KV0JP@_0_B.'QZGH9,'+K527+\P]:U>4K>Q+J&/%KW:*EZ\-TXY998 MAN7:6>X1BX(#3OD I@X%4\=';&"[(9BE^JI]P4J)M,>KU?>05%$4]S84=T$P M@E-,VLHC90Q%G(I4#BT29 3U6$NNM 'S@/$;UUPM[HF;LHP;)V1NK*VSEOZ) MG-=5?*/?@T"'7>K *\$$ <(0A$@."H.1<R .16MO06L7O,$KJ94*-.FJ2361'5+".F0-8[ $O>1 /IW_[2TF8 M-PUN/ 7[Y1[(0Q;*RUHFQ4?ZO5#T<2CXIG5ZEJZB6/&X?CSM!8/0I3*]*,4LUW362[R7G MPT\G[@C,YM1? 4P)V%IF9SE'*OSW='"2BH4_+7?D^AX,_\V<)7%,#\9;#F0S M";\UXOIM:$:SK9%_U4JLL(%KL8&EZC/1/O?$L M]/@%23SN!(T-HB(_G4YA^--IF.Z%V7Y,1D/SCB^P=2W8^GTY=%IQ[11%UBF- MN&<>:8,Q B8B*/.55K$",H+[0EWT5Y;2-.NJV.O8):JH]%VJ=.>H>>H4:RU! M+EJ%N)0<&>LYXLQ)55EGG?>WUC9J_9*SUIF0S$.JI].&3G5:J)7SRG8#6J7OS=>?+>P4,!>"+(8&)03QZ,*XB44@3 MC2.VU!GO@*4PL*[(S:VKJRG1!GE3GBHJ/% O@8(*=X<*\Z#JSM?W3CL6):=( M.H(1-U4Z%4\\++M*<"]!\L[>FLOE;D'A-H*IMQBJNKM@ZH,.\E$QS*L%4^-@ M9$;N%H*IMQ@%O[-K/ &79I9OW1X,+(@LXI='YG68'#XMS^7#.2[_QL$Q&/)'.&F2ZO;CR_'Q\7CT>C9V'PLL70N6/BXW.U?85A5!P26284U VDB% M1,6L#=0E/KVE'K!-0RF8!M@A7R5N(9W' %&>Q1D MI,Q) H0CM>J@K \@7M*R[DD;4[[A[*PWF$Y/S<@%>,SI4VL.MD[\XM"?C>8X MM!]KZ>PTPGF99%,@Z#H0]'5KB5<8[KU0 EE@U(A7%GB%B!0@*%21V)22X8KS M8D/5>/UX15'FVU?F!9_@5%08*X\BIA1QP272DD2@%UA:8:IH5>[C1R5?CV3) M)^"T:!=[RNF>F2^]L84AY:JPR8LQ/1W.VD!)2OS.[HW>-,QFPY"^EKZ5PO(A MR0/8=L]\-A/_Q IDK7\:>.. /1@?F"]_#69'1^-AFF.PFEXG@?X$1E,I"/S] M(/>JRU@4%Q([X9#0%8 6LL%8P!RI(_7Y2A+\8&L=:#EVR[- MHMYWK=Z=]'#.!<;!(1=8*M2O)3*54H@)H@(-E0S&K*.C\PDX1MJ08TU7PI

9U\S/L#7!FL])9<*P#M:4ZN#W6N"S&R;._MK]6D:O&NF5 MHRS7PZJ=+A7!F E%J$$8FXBX2\V/F%?I4*TB6@GITNDT271QG#Q:C;WURN!% M8V]=8Q?L0A-9$2D$XI4FB$LBD"91(Z:"E9%I;%-S]&J=2OD_!1_)2F*1"_*< MVN' ]3Z;R<2,2KNR=7%[="#JKUHT+3H5_^WUT*E3>@?>V]UV[YEB3N'* 41Y MAGA0.2(34*#2<@8O>FJ?O>"J3_B-2W06)\?::O3].3F*,M^B,I]UE/G@]_>J M\HH:I9&6VB-N@7F8BFDDK,$Q*&F @11OQL.2CDGMW>O-QHN<#Z >=8Y3+U/P MFIC\YW1XUDO;9V\_1KCGJ!QJ63\^T@:32Y+:]^/8[Q=(B2#."@8L)"IG@90P M@:PW"HF @Z>8:>]ELIOZC%P\X5Z<'8]%K1^$E!2-OA6-/L=,2""!:6T0B[1" MG#*'M*,1<1DU5Y[1(&\OH;RX0[XK923%2TXFXQBF4YAT,^S%$"[E*Z[F*]-; MYRL;:VW=<][(ZMCQ?LQX57+,%EEJ4F=HXQUL M3C(& "^^HEM!20!95VU=2QI2E/@6E?@< V%,6^8%1C@(L"E\3N22$;F*6T&8 MC5'0XAM9G]YJUZK54IHHK8UWY))Z7S^WXBSUOFX>N_FZ0]Y'(Z106"-K<#I* M8RQ2 &.(.J)UD"!?D4[S8=$7U6UUG2[-U1X3+JQ%<[6""[<8!OJZP]XS8P66 M2B"#*X(XE1J9J#'RWCL;*Z.HD<]>*-K7_&)'E36%A=)=K717NY6"@*]B#"XG M"XM/+FT8M MK_WXJI'6'R"L_5':1]+_7RV$\T>8SB8#-PL^%\X?^>47.I\LN\OW>L-26W)N M8&_Q".3L$4^]?8R'728Z,*V]M<[Y^.Q%1=?CN&<)QZTU7[S<#U:T?@VTOI/% MK+A5)F@4N.' * -'1D:*O(W*,"Z,$>O<0N,<:R3TH6CC6E_C"9"_Y&8"/ _PWF8NQW&G%OA_HG_#T\3?+I;BWU=E-VB&OM$*[+"SV- MA!%.D8'- ,$R@QTBV@I1$;T#VD"KF'P.LB_$16Y8\K4>"!X(7G.&6/!AH_%A MP2!A03#!>416:85X)7("14"!1>-)A4E4%> #[S-6BAS??P>%51RHW[/A<# : MI0!L.AF7U>5I)71=!_@DMD$[+A1C7'%MH[&&51P;$7CP]OU.PCM"&7DHO"OP M=2WX6FJY$ 0/-,14+A53Q*U3"'!,(JH(2XW8(C'NV0M":+\JA^0>L9;+P&2, M2;\%YE8K2P56@9E :*4-$4G+B2Y:ODE:WFG%0$GEDDL[BM2S7BK0=T4Y(M%9 ME=+6HPK/7G#:)^K&%39*?M@MD90 KUY*3^XV]6/=9NE_[N[Q'PN 8UZ90(71 ME'HNL-<6BZB,$B%2;#'.-.U!W58%P*\%X!^[.7'B/1&5JYCP*$07$8],(H.U M0 $+;2G%GFH!1$WK/KVU;CJ;DA-7P+" X1(8.B<4L%9,.2&<.&*])QZX#4F5 M386.M"+C[Y;V@DAM8N,@2;A&'/Y'UVB'/!*DH-43GAL!4]N&M M30'#=8OI=AZ8P2/Y\:D=AG7.!;SJ*!^56;$Z'OSZ].2DKGMNACT_F+KA>'HZ MJ4^WMHV#>X-1C7:@$S]\5ZO@JP:/'O(:3\71?6(&=5G8PED'(J$L)0-*Y&&?Y&7KO(A4!=3C3W29S<_=7G[48(;G:#:!"9;V/!- M31]8KZC.C/WVL?N2]+Q&DK[$[AF/8#2IH%..DTU"#)/)O+_7;+Q4R.DF25:/ MC'NL>L+'PCWNK4G[8O$U)6VVCF&.9_7+L^!)(2+7(B)+A_%HJ"JNF49.^XBX M]P[I2##"/A"&:31PL M99Q#2DN)0FI4) !^"*F>O=!]HDK2]X-RPL&G5 .A=#VYKZ*=N2UU%WJ:1@CG MP*=@S[6PYVV7''%I/+&T0A*GOHZR$LB8RB (:^CKK@P"7NJ=SAF/8TRE\?SJ]1K2]F'&;C+WWDFG]4[.J7HZ/ M[6"4%]]B4;[LKLE?!\8.AH/96<'B:V'QTBE_P73%A'((&RP0M_";JK1 E<8Z M@DF':46>O:#]6V!5Q=U4<&J#DJ O]X 7B+H'B.JR=FDDMNSH[" M-( RFE,_2!UE0!%]&$WKWW*J>&XTTQ1^AR].9_!"[HCP?"Z4\W/3#(C3YY6 M09^,:]+Y0VY;,_@4?OP\\+.C%A@Z7ZP%\ ->?,58&,3I[/*OK,N\B^79Z/Z; M1IM!0S+8CI6S#BO/X7]6:L$X%0YK*G&T[QEYUG[I:)X73\_99=.3(QW-C&U7@!*CVM$_0%T-4S2IV!,9FW& MTCN:I*WG_WQ;1 !5!PD2ZOZ0L."R=]:\6"7^M8*+"TDG>=G^\L?.=F_[[=[6 M[L[+U[U_[_^ZO;/WR^M^;V?OY>7ZO2Z#W]L_>/6Z=[#?._CWJ]Z;O:TWVSL' MK[9[+_?WME_MO:Y_>[W_Z\[V5GKYYYV]K;V7.UN_]EX?P N[K_8.7J_](_YC M9P08/3Z%:_ATM/J+"["=G01 AZ.$Z0#/YI\7G^**<,.?76^I?CB=S@;Q[*'$ M#3M9C_0:IM!K&.7>Z3%^7 MG2^[VV_P'OWS&*[]]>W!%M_[^N>'=[_L?MG]Z\^CMU]_&K[[ZW<"-&X8_OW' MV;N__(FE7.Y^?077?_5Y[^!W]NZOMT 5]XYVMP_9WE][']]^??7EW5\_?]C] MY<_AN^T_X^X!T,G/[XFT7'O"$=B6*6)H*#(!!Q0]J2HP,JVM&@(_&)T&OY7H MMTH+C5.F%#< 3Y\D/9N][[!Q"XK!$4__BR)GWY+_)C;SQIW_AE^]_-B_]LV_E,>QG53B:#:4## M\"FDE,/#04H]G$U@L/,#5JDH9[J'2;78DDBFP4S<41\$989GP)ZG_2PSX':Y MAJ.T=Q2,_^\I\-(P MF>9+PN" [^61>1TFA[V#X(Y&\+R'9[VMSK=> MPMUAF;5+K/YPNYIJXRSYEM/EVINF2OZY/%]N%-4#?3T,DWX/%#ZOKSK+L:WU M#ZMG.@VS[DC[S4?@>O"9*7QD$L:30U@Z7^N%!?>;#D ,9K)8$&YAS,,T?1H/ M/Z6[MP^7EM,8UB%\\W@,D[?P?3_O[:>)A#O5#R/2=%*\K%A#,$=&\Z?NYZ=M MY97LI-/CXUH^L^GJ$7T>S(YZRXJ\D_2O?ML,6VV>*^S.0F%/)ZGEW"RI4[KO MUN$D9 ,L/]1O0Y.=^;MYDI=&W;PT__QB^+5-MS?^%(XM?(*PO(3TTK=;)TFO MXR5IK_ <1IN>>Q3>%Q#V=[6Z^VMWSMZ,#T[MN/A BW?[K48FJ:XS<%(HVF79/[: MTIU,D@>LZC!Q *D)NVK$^I^_.1 ?&)ED""<1!HJ M:91/=>6>BXM'23J\_'. ?ZZ][/YJUQU\:C88ID^=]6 ;J"_GP^*"6Z>'L&/U M&.[7[7WC>#@&/Z8?$XZ-4E5IB9A M6L/+:M*3<^FG+5;6$)R=6346)7U..#0]M=.!'Y@)L)'.W*7OK *^?F_E_G?N M;BW@@>ZG'7&\#(GIUA?@O7,%>''E-Y_W_DB?2:]F XCE6&X\G:1YR>=$3J=M MVMAEXS^W$OYUCBY?RV:L-L]FI/=E,^YW6,K+N?\4_M@:^=]@Y::S/;.G;L^/_,"G7\/4#>+ I]N&7MU\/Z;L/1\/=XS=?=K^^%6^_NK/=!-$?WG[9 M.]AY;PTU5E0,<:PLF*3PCXDJHD"]L1)DI2MZWB25AC!72:TYU=Q(I:Q0C,C M316PDO:B23H=3)OC.7.Y927.;&]REFVAA92RT[T64^^DD=-WV*S?'N;R8V$= M2*B$X+&R/!)G86(LM]P;Y;RTFV+C)B*W@.%!-F46TYPWR[^?ZCK=99KWP)QU M?JXKQK>^*W;5.S*?P H,8=0LCGJQI M/?.KO7=LTAV$4)MD,AW?"2;I:=^W5 M_@E@+.U">S/* \GS.YU;OW[>^V5KZ[>Y35>7.ZG%LAA>IZQ-350N#BC= M9'(*=ZR-U=KQ)^'=SI))\2S==IZ^8G1G \J,E".[;7KUXNK+JM M?#=XM.%9O^:>?ISBA\D),3SU(5/1YA[G!QO'XUD=:FQH6FX8/7_T_,A):L, M&_)*'R%\6K7UAV='R5:;A'XKM?') M8-2!AO,&)2Q9]23^[7:5$F([Y>#W-S()D@ M27#M> ?9D^0!/E/\]?P0\XPM[VL]F?/J23TY7GZQV&^:,L_ET>YGGG4\#=!YG5\7? M?J-GS;1V (5/9GBZM.$L^',T;E9O_6XP<:?' )WPL-,?KB)VF1)VZNPIE-(C M?V!RY3JH7QJD/7KV R(J)V8^Q,K(]$7.,\3N?PC+TT7XQEQST%"S#OI2">@8?-J<[= N4]219.RCQIO^7-&8@, MP8\.P_BQ"/E>A3RG$HD.@X*./X^20R_;%QDX8-;#%.C5 (CI8';6^S2N65YV MMY_C)45X]RB\GU,8JMXI@ )DW9O'[N;ZE&CGR)^,!XG]MV@]EVMBG[,DU"1& M /"\T;99CKTTP"+1!U+';FK UKG<@DFMFDLO+AM_.?)71'=_HCMH;.)LS$UG M*=WA\.R<4("M@7W?5]K=;_C)(,?^KYG@NT#%\$;86,E MI;<^@+D?JF>7W.>;9OYF6,0[*SQHE\>OQZ>SS&02,.8,A;SC94*34@M<>RX^ M@?!R_;ES(-Q/1T=ZR?@,WY7;8KA42;!!:,4#UD9C;:,51FD<7>6:PUT,BVYN MR\[>SQ?+!*4QY@)!OYG)_B0[W?V?:6"+6Z]++LN]>\%V23H?AZUCI5EATJ_,5I#;Y2R^%(N M7UY:[W29I21*&Y='IOV)SW:R,GJWWX MJ[(T>O_H.J6G?^.5)CI?NL[9;,931P'JQ+C_&$"KR5FO=6'#?;H^9OS/AK\V MF98P#\][G;24VJV]\I%@JH\&<*$VFI,$5C=52/?-H89)2BKZ5M;:.8W67B@A MHA#$,QZ45A%VA*@U%QXK3FU3T@,T&JU2;22N=+X\U_7X;3)V(?AI,MT.TECG M&BZ?G(8??MW]_-[Q2ENE**J((X@'YI$5A"$%FR9 *G?:I2;.XOD*_88]:3A7 MX-4KO=T;%LK2!&IVNIV(1TOI2IOG6]Y9$?@]'=1_Y4P"EWE-K?"@=4M.U3H9 M+84\9V?)##EU^>S"$4!3#B_#Q,[:W&V3S9?C.A?A4ZOVT][IR7DTV8:O]-.+ M;60S ^QI3M=->2?S'7Q54*N[>_?+)KVV*OSUU=?=P_=:6XU5I9'5T2".4^UR M[PP""(W"5D(JC_]FDYZ3LV4L)D.O.1$W'JM9>C"^-)[9?.M++-[S>YTE+]"=@+$T9,.YFQV6Q=C&Y1 M_;B^8H=X+NVS*X,_BRR.29A-QKDZ=AB>+93.3-OQ-HK49GFVQP]Z&>IZZ?-V M.)@>+4+%WY5'>;<1WZ64PA+GW?NP]1YSRQAS$G8\ =HC'4:FLA+A*%2@ &$X MI0)N8-SVMT5R4>I]U97\YNVP%Y*V%LD]*Q,\6H;:B8*>W^TR7#3Y2!#,-^_$52#P=2WKP66#87,CZ73-MNB2ULSECU\IW,_%@15+NDJ7Q38BX/(]C M?E)D"3" 2!R;CV$Q;S6$ %>JC\NTL)&/+M;0TS"9.CUL00VNDYJ8[W&A'DO* MM9S5F6>UW>5R=IP?Q'34H[7'I^<'FUA8\Z&0PY^1 Y]N= M#,[QYQK(DL,"\# ,/B7S9IH.: Y=DTJ:) *CGB0:N>1!.$<3$_C6YQA3DJQ/ M818P'V&@XSC[7+N.$I5#==I*F@68M\9O5#.G%;4*3\Q9&E%_GA4SOU=.MLQT MM]\[G89X.H31?9H[:]SX$URCKMC4#.V<_RA]KO4SK;A^/AP];>LE=AL2YF^> MPKQ-9B:M O.EUT95OA4CNANHK^N