pub fn authorize_with_seed(
    transaction_context: &TransactionContext,
    instruction_context: &InstructionContext,
    stake_account: &mut BorrowedAccount<'_>,
    authority_base_index: usize,
    authority_seed: &str,
    authority_owner: &Pubkey,
    new_authority: &Pubkey,
    stake_authorize: StakeAuthorize,
    require_custodian_for_locked_stake_authorize: bool,
    clock: &Clock,
    custodian: Option<&Pubkey>
) -> Result<(), InstructionError>