pub fn decrease_liquidity<'a, 'b, 'c: 'info, 'info>(
pool_state_loader: &'b AccountLoader<'info, PoolState>,
protocol_position: &'b mut Box<Account<'info, ProtocolPositionState>>,
personal_position: &'b mut Box<Account<'info, PersonalPositionState>>,
token_vault_0: &'b mut Box<InterfaceAccount<'info, TokenAccount>>,
token_vault_1: &'b mut Box<InterfaceAccount<'info, TokenAccount>>,
tick_array_lower_loader: &'b AccountLoader<'info, TickArrayState>,
tick_array_upper_loader: &'b AccountLoader<'info, TickArrayState>,
recipient_token_account_0: &'b Box<InterfaceAccount<'info, TokenAccount>>,
recipient_token_account_1: &'b Box<InterfaceAccount<'info, TokenAccount>>,
token_program: &'b Program<'info, Token>,
token_program_2022: Option<Program<'info, Token2022>>,
_memo_program: Option<UncheckedAccount<'info>>,
vault_0_mint: Option<Box<InterfaceAccount<'info, Mint>>>,
vault_1_mint: Option<Box<InterfaceAccount<'info, Mint>>>,
remaining_accounts: &'c [AccountInfo<'info>],
liquidity: u128,
amount_0_min: u64,
amount_1_min: u64
) -> Result<()>