@fin.cx/skr
Version:
SKR03 and SKR04 German accounting standards for double-entry bookkeeping
912 lines • 45.8 kB
JavaScript
/**
* SKR04 - Financial Classification Principle (Abschlussgliederungsprinzip)
* Organized by financial statement structure
*/
export const SKR04_ACCOUNTS = [
// Class 0: Capital Accounts (Anlagekonten)
{
accountNumber: '0001',
accountName: 'Aufwendungen für Ingangsetzung',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Start-up expenses',
},
{
accountNumber: '0010',
accountName: 'Konzessionen',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Concessions',
},
{
accountNumber: '0020',
accountName: 'Patente',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Patents',
},
{
accountNumber: '0030',
accountName: 'Lizenzen',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Licenses',
},
{
accountNumber: '0050',
accountName: 'Firmenwert',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Goodwill',
},
{
accountNumber: '0100',
accountName: 'EDV-Software',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'IT Software',
},
{
accountNumber: '0200',
accountName: 'Grundstücke',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Land and property',
},
{
accountNumber: '0210',
accountName: 'Gebäude',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Buildings',
},
{
accountNumber: '0300',
accountName: 'Maschinen',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Machinery',
},
{
accountNumber: '0400',
accountName: 'Fuhrpark',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Vehicles',
},
{
accountNumber: '0500',
accountName: 'Betriebs- und Geschäftsausstattung',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Office equipment',
},
{
accountNumber: '0600',
accountName: 'Geleistete Anzahlungen',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Prepayments on fixed assets',
},
{
accountNumber: '0800',
accountName: 'Finanzanlagen',
accountClass: 0,
accountType: 'asset',
skrType: 'SKR04',
description: 'Financial assets',
},
// Class 1: Financial and Current Assets (Finanz- und Umlaufvermögen)
{
accountNumber: '1000',
accountName: 'Kasse',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Cash on hand',
},
{
accountNumber: '1100',
accountName: 'Postbank',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Postal bank account',
},
{
accountNumber: '1200',
accountName: 'Bank',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Bank account',
},
{
accountNumber: '1210',
accountName: 'Sparkasse',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Savings bank',
},
{
accountNumber: '1300',
accountName: 'Wertpapiere',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Securities',
},
{
accountNumber: '1400',
accountName: 'Forderungen aus Lieferungen und Leistungen',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Trade receivables',
},
{
accountNumber: '1500',
accountName: 'Sonstige Vermögensgegenstände',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Other assets',
},
{
accountNumber: '1520',
accountName: 'Abziehbare Vorsteuer',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Input VAT',
},
{
accountNumber: '1570',
accountName: 'Vorsteuer 7%',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Input VAT 7%',
},
{
accountNumber: '1571',
accountName: 'Vorsteuer 19%',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Input VAT 19%',
},
{
accountNumber: '1600',
accountName: 'Verbindlichkeiten aus Lieferungen und Leistungen',
accountClass: 1,
accountType: 'liability',
skrType: 'SKR04',
description: 'Trade payables',
},
{
accountNumber: '1700',
accountName: 'Sonstige Verbindlichkeiten',
accountClass: 1,
accountType: 'liability',
skrType: 'SKR04',
description: 'Other liabilities',
},
{
accountNumber: '1770',
accountName: 'Umsatzsteuer 7%',
accountClass: 1,
accountType: 'liability',
skrType: 'SKR04',
description: 'VAT payable 7%',
},
{
accountNumber: '1771',
accountName: 'Umsatzsteuer 19%',
accountClass: 1,
accountType: 'liability',
skrType: 'SKR04',
description: 'VAT payable 19%',
},
{
accountNumber: '1800',
accountName: 'Privatentnahmen',
accountClass: 1,
accountType: 'equity',
skrType: 'SKR04',
description: 'Private withdrawals',
},
{
accountNumber: '1810',
accountName: 'Privateinlagen',
accountClass: 1,
accountType: 'equity',
skrType: 'SKR04',
description: 'Private deposits',
},
{
accountNumber: '1900',
accountName: 'Verrechnungskonto',
accountClass: 1,
accountType: 'asset',
skrType: 'SKR04',
description: 'Clearing account',
},
// Class 2: Expenses (Aufwendungen) - Part 1
{
accountNumber: '2000',
accountName: 'Roh-, Hilfs- und Betriebsstoffe',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Raw materials and supplies',
},
{
accountNumber: '2100',
accountName: 'Bezogene Waren',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Purchased goods',
},
{
accountNumber: '2200',
accountName: 'Bezogene Leistungen',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Purchased services',
},
{
accountNumber: '2300',
accountName: 'Löhne',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Wages',
},
{
accountNumber: '2400',
accountName: 'Gehälter',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Salaries',
},
{
accountNumber: '2500',
accountName: 'Soziale Abgaben',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Social security contributions',
},
{
accountNumber: '2600',
accountName: 'Aufwendungen für Altersversorgung',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Pension expenses',
},
{
accountNumber: '2700',
accountName: 'Abschreibungen auf immaterielle Vermögensgegenstände',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Depreciation on intangible assets',
},
{
accountNumber: '2800',
accountName: 'Abschreibungen auf Sachanlagen',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Depreciation on fixed assets',
},
{
accountNumber: '2900',
accountName: 'Abschreibungen auf Finanzanlagen',
accountClass: 2,
accountType: 'expense',
skrType: 'SKR04',
description: 'Depreciation on financial assets',
},
// Class 3: Expenses (Aufwendungen) - Part 2
{
accountNumber: '3000',
accountName: 'Raumkosten',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Rent and lease',
},
{
accountNumber: '3100',
accountName: 'Sonstige Raumkosten',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Other occupancy costs',
},
{
accountNumber: '3200',
accountName: 'Instandhaltung',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Maintenance',
},
{
accountNumber: '3300',
accountName: 'Fahrzeugkosten',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Vehicle expenses',
},
{
accountNumber: '3400',
accountName: 'Werbe- und Reisekosten',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Marketing and travel',
},
{
accountNumber: '3500',
accountName: 'Bewirtungskosten',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Entertainment expenses',
},
{
accountNumber: '3600',
accountName: 'Versicherungen',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Insurance',
},
{
accountNumber: '3700',
accountName: 'Beiträge und Gebühren',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Fees and subscriptions',
},
{
accountNumber: '3800',
accountName: 'Büromaterial',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Office supplies',
},
{
accountNumber: '3900',
accountName: 'Sonstige Aufwendungen',
accountClass: 3,
accountType: 'expense',
skrType: 'SKR04',
description: 'Other expenses',
},
// Class 4: Revenues (Erträge) - Part 1
{
accountNumber: '4000',
accountName: 'Umsatzerlöse',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Sales revenue',
vatRate: 19,
},
{
accountNumber: '4100',
accountName: 'steuerfreie Umsätze',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Tax-free sales',
},
{
accountNumber: '4200',
accountName: 'Erlöse 7% USt',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Revenue 7% VAT',
vatRate: 7,
},
{
accountNumber: '4300',
accountName: 'Erlöse 19% USt',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Revenue 19% VAT',
vatRate: 19,
},
{
accountNumber: '4400',
accountName: 'Erlöse innergemeinschaftliche Lieferungen',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'EU sales',
},
{
accountNumber: '4500',
accountName: 'Erlöse Export',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Export sales',
},
{
accountNumber: '4600',
accountName: 'Bestandsveränderungen',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Inventory changes',
},
{
accountNumber: '4700',
accountName: 'Aktivierte Eigenleistungen',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Capitalized own work',
},
{
accountNumber: '4800',
accountName: 'Sonstige betriebliche Erträge',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Other operating income',
},
{
accountNumber: '4900',
accountName: 'Erträge aus Beteiligungen',
accountClass: 4,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Investment income',
},
// Class 5: Revenues (Erträge) - Part 2
{
accountNumber: '5000',
accountName: 'Zinserträge',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Interest income',
},
{
accountNumber: '5100',
accountName: 'Erträge aus Wertpapieren',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Securities income',
},
{
accountNumber: '5200',
accountName: 'Erträge aus Anlagenabgängen',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Gains from asset disposals',
},
{
accountNumber: '5300',
accountName: 'Währungsgewinne',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Currency gains',
},
{
accountNumber: '5400',
accountName: 'Erträge aus der Auflösung von Rückstellungen',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Income from provision releases',
},
{
accountNumber: '5500',
accountName: 'Periodenfremde Erträge',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Prior period income',
},
{
accountNumber: '5600',
accountName: 'Außerordentliche Erträge',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Extraordinary income',
},
{
accountNumber: '5700',
accountName: 'Verwendung von Rücklagen',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Use of reserves',
},
{
accountNumber: '5800',
accountName: 'Gewinne aus Unternehmensverträgen',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Profits from company agreements',
},
{
accountNumber: '5900',
accountName: 'Sonstige Erträge',
accountClass: 5,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Other income',
},
// Class 6: Special Accounts (Sonderkonten)
{
accountNumber: '6000',
accountName: 'Betriebssteuern',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Operating taxes',
},
{
accountNumber: '6100',
accountName: 'Vermögensteuer',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Wealth tax',
},
{
accountNumber: '6200',
accountName: 'Körperschaftsteuer',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Corporate tax',
},
{
accountNumber: '6300',
accountName: 'Einkommensteuer',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Income tax',
},
{
accountNumber: '6400',
accountName: 'Gewerbesteuer',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Trade tax',
},
{
accountNumber: '6500',
accountName: 'Sonstige Steuern',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Other taxes',
},
{
accountNumber: '6600',
accountName: 'Zinsaufwendungen',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Interest expense',
},
{
accountNumber: '6700',
accountName: 'Währungsverluste',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Currency losses',
},
{
accountNumber: '6800',
accountName: 'Außerordentliche Aufwendungen',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Extraordinary expenses',
},
{
accountNumber: '6900',
accountName: 'Verluste aus Unternehmensverträgen',
accountClass: 6,
accountType: 'expense',
skrType: 'SKR04',
description: 'Losses from company agreements',
},
// Class 7: Cost Accounting (Kosten- und Leistungsrechnung)
{
accountNumber: '7000',
accountName: 'Kostenstellenrechnung',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Cost center accounting',
},
{
accountNumber: '7100',
accountName: 'Kostenträgerrechnung',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Cost object accounting',
},
{
accountNumber: '7200',
accountName: 'Kostenartenrechnung',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Cost type accounting',
},
{
accountNumber: '7300',
accountName: 'Kalkulatorische Kosten',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Imputed costs',
},
{
accountNumber: '7400',
accountName: 'Kalkulatorische Abschreibungen',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Imputed depreciation',
},
{
accountNumber: '7500',
accountName: 'Kalkulatorische Zinsen',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Imputed interest',
},
{
accountNumber: '7600',
accountName: 'Kalkulatorischer Unternehmerlohn',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Imputed entrepreneur salary',
},
{
accountNumber: '7700',
accountName: 'Kalkulatorische Miete',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Imputed rent',
},
{
accountNumber: '7800',
accountName: 'Verrechnete Kosten',
accountClass: 7,
accountType: 'expense',
skrType: 'SKR04',
description: 'Allocated costs',
},
{
accountNumber: '7900',
accountName: 'Verrechnete Leistungen',
accountClass: 7,
accountType: 'revenue',
skrType: 'SKR04',
description: 'Allocated services',
},
// Class 8: Free for Use (Zur freien Verfügung)
{
accountNumber: '8000',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8100',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8200',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8300',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8400',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8500',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8600',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8700',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8800',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
{
accountNumber: '8900',
accountName: 'frei',
accountClass: 8,
accountType: 'equity',
skrType: 'SKR04',
description: 'Available for custom use',
},
// Class 9: Equity and Closing Accounts (Eigenkapital und Abschlusskonten)
{
accountNumber: '9000',
accountName: 'Eigenkapital',
accountClass: 9,
accountType: 'equity',
skrType: 'SKR04',
description: 'Equity capital',
},
{
accountNumber: '9100',
accountName: 'Gezeichnetes Kapital',
accountClass: 9,
accountType: 'equity',
skrType: 'SKR04',
description: 'Subscribed capital',
},
{
accountNumber: '9200',
accountName: 'Kapitalrücklage',
accountClass: 9,
accountType: 'equity',
skrType: 'SKR04',
description: 'Capital reserves',
},
{
accountNumber: '9300',
accountName: 'Gewinnrücklagen',
accountClass: 9,
accountType: 'equity',
skrType: 'SKR04',
description: 'Revenue reserves',
},
{
accountNumber: '9400',
accountName: 'Gewinnvortrag/Verlustvortrag',
accountClass: 9,
accountType: 'equity',
skrType: 'SKR04',
description: 'Profit/loss carried forward',
},
{
accountNumber: '9500',
accountName: 'Jahresüberschuss/Jahresfehlbetrag',
accountClass: 9,
accountType: 'equity',
skrType: 'SKR04',
description: 'Annual profit/loss',
},
{
accountNumber: '9600',
accountName: 'Rückstellungen',
accountClass: 9,
accountType: 'liability',
skrType: 'SKR04',
description: 'Provisions',
},
{
accountNumber: '9700',
accountName: 'Verbindlichkeiten',
accountClass: 9,
accountType: 'liability',
skrType: 'SKR04',
description: 'Liabilities',
},
{
accountNumber: '9800',
accountName: 'Rechnungsabgrenzungsposten',
accountClass: 9,
accountType: 'liability',
skrType: 'SKR04',
description: 'Accruals and deferrals',
},
{
accountNumber: '9900',
accountName: 'Statistische Konten',
accountClass: 9,
accountType: 'equity',
skrType: 'SKR04',
description: 'Statistical accounts',
},
];
export const SKR04_ACCOUNT_CLASSES = {
0: 'Anlagekonten (Fixed Assets)',
1: 'Finanz- und Umlaufvermögen (Financial and Current Assets)',
2: 'Aufwendungen Teil 1 (Expenses Part 1)',
3: 'Aufwendungen Teil 2 (Expenses Part 2)',
4: 'Erträge Teil 1 (Revenues Part 1)',
5: 'Erträge Teil 2 (Revenues Part 2)',
6: 'Sonderkonten (Special Accounts)',
7: 'Kosten- und Leistungsrechnung (Cost Accounting)',
8: 'Zur freien Verfügung (Free for Use)',
9: 'Eigenkapital und Abschlusskonten (Equity and Closing Accounts)',
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tyMDQuZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NrcjA0LmRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFtQjtJQUM1QywyQ0FBMkM7SUFDM0M7UUFDRSxhQUFhLEVBQUUsTUFBTTtRQUNyQixXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLFlBQVksRUFBRSxDQUFDO1FBQ2YsV0FBVyxFQUFFLE9BQU87UUFDcEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsV0FBVyxFQUFFLG1CQUFtQjtLQUNqQztJQUNEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsV0FBVyxFQUFFLGNBQWM7UUFDM0IsWUFBWSxFQUFFLENBQUM7UUFDZixXQUFXLEVBQUUsT0FBTztRQUNwQixPQUFPLEVBQUUsT0FBTztRQUNoQixXQUFXLEVBQUUsYUFBYTtLQUMzQjtJQUNEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsV0FBVyxFQUFFLFNBQVM7UUFDdEIsWUFBWSxFQUFFLENBQUM7UUFDZixXQUFXLEVBQUUsT0FBTztRQUNwQixPQUFPLEVBQUUsT0FBTztRQUNoQixXQUFXLEVBQUUsU0FBUztLQUN2QjtJQUNEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsV0FBVyxFQUFFLFVBQVU7UUFDdkIsWUFBWSxFQUFFLENBQUM7UUFDZixXQUFXLEVBQUUsT0FBTztRQUNwQixPQUFPLEVBQUUsT0FBTztRQUNoQixXQUFXLEVBQUUsVUFBVTtLQUN4QjtJQUNEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsV0FBVyxFQUFFLFlBQVk7UUFDekIsWUFBWSxFQUFFLENBQUM7UUFDZixXQUFXLEVBQUUsT0FBTztRQUNwQixPQUFPLEVBQUUsT0FBTztRQUNoQixXQUFXLEVBQUUsVUFBVTtLQUN4QjtJQUNEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsV0FBVyxFQUFFLGNBQWM7UUFDM0IsWUFB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