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