XML 52 R34.htm IDEA: XBRL DOCUMENT
v3.10.0.1

Summary of Significant Accounting Policies - Schedule of Cumulative Effect Adjustments (Details) - Retained Earnings $ in Millions | Jan. 01, 2018 USD ($)
--- | ---
Adjustments for New Accounting Pronouncement |
New Accounting Pronouncements or Change in Accounting Principle [Line Items] |
Cumulative effect adjustment | $ 1,496
ASU 2014-09 - Revenue from Contracts with Customers |
New Accounting Pronouncements or Change in Accounting Principle [Line Items] |
Cumulative effect adjustment | (47)
ASU 2016-01 - Financial Instruments |
New Accounting Pronouncements or Change in Accounting Principle [Line Items] |
Cumulative effect adjustment | 232
ASU 2016-16 - Income Taxes: Intra-Entity Transfers |
New Accounting Pronouncements or Change in Accounting Principle [Line Items] |
Cumulative effect adjustment | $ 1,311

X
- Definition Amount after tax of increase (decrease) to equity or (increase) decrease to net assets, resulting from the cumulative effect adjustment of a new accounting principle applied in the period of adoption. + References No definition available. + Details
Name: | us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition 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. + References No definition available. + Details
Name: | us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_NewAccountingPronouncementMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementEquityComponentsAxis=us-gaap_RetainedEarningsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201601Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201616Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |