give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "Currently ValidateLedger API defined as    {code}  // ValidatedLedger represents the 'final ledger'. In addition to implement the methods inherited from the Ledger,  // it provides the handle to objects for querying the state and executing transactions.  type ValidatedLedger interface {   Ledger   // GetTransactionByID retrieves a transaction by id   GetTransactionByID(txID string) (*pb.Transaction, error)   // GetBlockByHash returns a block given it's hash   GetBlockByHash(blockHash []byte) (*common.Block, error)   // NewTxSimulator gives handle to a transaction simulator.   // A client can obtain more than one 'TxSimulator's for parallel execution.   // Any snapshoting/synchronization should be performed at the implementation level if required   NewTxSimulator() (TxSimulator, error)   // NewQueryExecuter gives handle to a query executer.   // A client can obtain more than one 'QueryExecutor's for parallel execution.   // Any synchronization should be performed at the implementation level if required   NewQueryExecutor() (QueryExecutor, error)   // RemoveInvalidTransactions validates all the transactions in the given block   // and returns a block that contains only valid transactions and a list of transactions that are invalid   RemoveInvalidTransactionsAndPrepare(block *common.Block) (*common.Block, []*pb.InvalidTransaction, error)   // Commit commits the changes prepared in the method RemoveInvalidTransactionsAndPrepare.   // Commits both the valid block and related state changes   Commit() error   // Rollback rollbacks the changes prepared in the method RemoveInvalidTransactionsAndPrepare   Rollback()  }  {code}    Whereas according to the flow described in FAB-1038, ValidateLedger API has to be refactored and provide following method   {code}   Commit(block *common.Block) error  {code}  which will take care to commit the block and validate transactions with *MVCC*.     !flows.png|thumbnail!     Moreover there is no longer need in  {code}   RemoveInvalidTransactionsAndPrepare(block *common.Block) (*common.Block, []*pb.InvalidTransaction, error)   // Rollback rollbacks the changes prepared in the method RemoveInvalidTransactionsAndPrepare   Rollback()  {code}    As {{RemoveInvalidTransactionsAndPrepare}} will be consolidated with new commit functionality and hence there is no longer need for {{Rollback}}.    Final version of ValidatedLedger API will look as follows:    {code}  // ValidatedLedger represents the 'final ledger'. In addition to implement the methods inherited from the Ledger,  // it provides the handle to objects for querying the state and executing transactions.  type ValidatedLedger interface {   Ledger   // GetTransactionByID retrieves a transaction by id   GetTransactionByID(txID string) (*pb.Transaction, error)   // GetBlockByHash returns a block given it's hash   GetBlockByHash(blockHash []byte) (*common.Block, error)   // NewTxSimulator gives handle to a transaction simulator.   // A client can obtain more than one 'TxSimulator's for parallel execution.   // Any snapshoting/synchronization should be performed at the implementation level if required   NewTxSimulator() (TxSimulator, error)   // NewQueryExecuter gives handle to a query executor.   // A client can obtain more than one 'QueryExecutor's for parallel execution.   // Any synchronization should be performed at the implementation level if required   NewQueryExecutor() (QueryExecutor, error)   // Commits block into the ledger   Commit(block *common.Block) error  }  {code}    In order to accommodate the changes TxMgr API also need to be changed into:   {code}  // TxMgr - an interface that a transaction manager should implement  type TxMgr interface {   NewQueryExecutor() (ledger.QueryExecutor, error)   NewTxSimulator() (ledger.TxSimulator, error)   ValidateAndPrepare(block *common.Block, doMVCCValidation bool) error   GetBlockNumFromSavepoint() (uint64, error)   Commit() error   Rollback()   Shutdown()  }  {code}    The function {{ValidateAndPrepare}} has to take into account transaction which already marked as invalid and skip them and extend invalid transaction filter bit array with transaction which invalid in terms of MVCC."
Answer: 2811.0