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