 | us-gaap:RetirementPlanTypeAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102 |
 | us-gaap:RetirementPlanTypeAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102DefinedContributionPlanTable |
 | us-gaap:RetirementPlanSponsorLocationAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp103 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp103 |
 | us-gaap:RetirementPlanSponsorLocationAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp103DefinedContributionPlanTable |
 | us-gaap:RetirementPlanTaxStatusAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp104 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp104 |
 | us-gaap:RetirementPlanTaxStatusAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp104DefinedContributionPlanTable |
 | us-gaap:RetirementPlanNameAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp105 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp105 |
 | us-gaap:RetirementPlanNameAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp105DefinedContributionPlanTable |
 | us-gaap:RetirementPlanTypeAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111 |
 | us-gaap:RetirementPlanTypeAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111DefinedContributionPlanTable |
 | us-gaap:RetirementPlanTypeAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112 |
 | us-gaap:RetirementPlanTypeAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112DefinedContributionPlanTable |
 | us-gaap:RetirementPlanSponsorLocationAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp121 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp121 |
 | us-gaap:RetirementPlanSponsorLocationAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp121DefinedContributionPlanTable |
 | us-gaap:RetirementPlanSponsorLocationAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp122 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp122 |
 | us-gaap:RetirementPlanSponsorLocationAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp122DefinedContributionPlanTable |
 | us-gaap:RetirementPlanSponsorLocationAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp123 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp123 |
 | us-gaap:RetirementPlanSponsorLocationAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp123DefinedContributionPlanTable |
 | us-gaap:RetirementPlanSponsorLocationAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp125 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp125 |
 | us-gaap:RetirementPlanSponsorLocationAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp125DefinedContributionPlanTable |
 | us-gaap:RetirementPlanTaxStatusAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp131 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp131 |
 | us-gaap:RetirementPlanTaxStatusAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp131DefinedContributionPlanTable |
 | us-gaap:RetirementPlanNameAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141 |
 | us-gaap:DefinedContributionPlanDisclosureLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141 |
 | us-gaap:RetirementPlanNameAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141DefinedContributionPlanTable |