| Cube_bones.hpp | | Cube_bones.hpp | |
| | | | |
| skipping to change at line 204 | | skipping to change at line 204 | |
| arma_inline arma_warn_unused const eT* slice_colptr(const uword in_slice,
const uword in_col) const; | | arma_inline arma_warn_unused const eT* slice_colptr(const uword in_slice,
const uword in_col) const; | |
| | | | |
| inline void impl_print(const std::string& extra_text) const; | | inline void impl_print(const std::string& extra_text) const; | |
| inline void impl_print(std::ostream& user_stream, const std::string& extr
a_text) const; | | inline void impl_print(std::ostream& user_stream, const std::string& extr
a_text) const; | |
| | | | |
| inline void impl_raw_print(const std::string& extra_text) const; | | inline void impl_raw_print(const std::string& extra_text) const; | |
| inline void impl_raw_print(std::ostream& user_stream, const std::string&
extra_text) const; | | inline void impl_raw_print(std::ostream& user_stream, const std::string&
extra_text) const; | |
| | | | |
| inline void set_size(const uword in_rows, const uword in_cols, const uwo
rd in_slices); | | inline void set_size(const uword in_rows, const uword in_cols, const uwo
rd in_slices); | |
| inline void reshape(const uword in_rows, const uword in_cols, const uwo
rd in_slices, const uword dim = 0); | | inline void reshape(const uword in_rows, const uword in_cols, const uwo
rd in_slices, const uword dim = 0); | |
|
| | | inline void resize(const uword in_rows, const uword in_cols, const uwo
rd in_slices); | |
| | | | |
| template<typename eT2> inline void copy_size(const Cube<eT2>& m); | | template<typename eT2> inline void copy_size(const Cube<eT2>& m); | |
| | | | |
| inline const Cube& fill(const eT val); | | inline const Cube& fill(const eT val); | |
| | | | |
| inline const Cube& zeros(); | | inline const Cube& zeros(); | |
| inline const Cube& zeros(const uword in_rows, const uword in_cols, const
uword in_slices); | | inline const Cube& zeros(const uword in_rows, const uword in_cols, const
uword in_slices); | |
| | | | |
| inline const Cube& ones(); | | inline const Cube& ones(); | |
| inline const Cube& ones(const uword in_rows, const uword in_cols, const u
word in_slices); | | inline const Cube& ones(const uword in_rows, const uword in_cols, const u
word in_slices); | |
| | | | |
| skipping to change at line 308 | | skipping to change at line 309 | |
| inline void init_warm(const uword in_rows, const uword in_cols, const uwo
rd in_slices); | | inline void init_warm(const uword in_rows, const uword in_cols, const uwo
rd in_slices); | |
| | | | |
| template<typename T1, typename T2> | | template<typename T1, typename T2> | |
| inline void init(const BaseCube<pod_type,T1>& A, const BaseCube<pod_type,
T2>& B); | | inline void init(const BaseCube<pod_type,T1>& A, const BaseCube<pod_type,
T2>& B); | |
| | | | |
| inline void steal_mem(Cube& X); | | inline void steal_mem(Cube& X); | |
| | | | |
| inline void delete_mat(); | | inline void delete_mat(); | |
| inline void create_mat(); | | inline void create_mat(); | |
| | | | |
|
| friend class op_reshape; | | | |
| friend class glue_join; | | friend class glue_join; | |
|
| | | friend class op_reshape; | |
| | | friend class op_resize; | |
| | | | |
| public: | | public: | |
| | | | |
| #ifdef ARMA_EXTRA_CUBE_PROTO | | #ifdef ARMA_EXTRA_CUBE_PROTO | |
| #include ARMA_INCFILE_WRAP(ARMA_EXTRA_CUBE_PROTO) | | #include ARMA_INCFILE_WRAP(ARMA_EXTRA_CUBE_PROTO) | |
| #endif | | #endif | |
| }; | | }; | |
| | | | |
| class Cube_aux | | class Cube_aux | |
| { | | { | |
| | | | |
End of changes. 3 change blocks. |
| 1 lines changed or deleted | | 3 lines changed or added | |
|
| Cube_meat.hpp | | Cube_meat.hpp | |
| | | | |
| skipping to change at line 2199 | | skipping to change at line 2199 | |
| template<typename eT> | | template<typename eT> | |
| inline | | inline | |
| void | | void | |
| Cube<eT>::reshape(const uword in_rows, const uword in_cols, const uword in_
slices, const uword dim) | | Cube<eT>::reshape(const uword in_rows, const uword in_cols, const uword in_
slices, const uword dim) | |
| { | | { | |
| arma_extra_debug_sigprint(); | | arma_extra_debug_sigprint(); | |
| | | | |
| *this = arma::reshape(*this, in_rows, in_cols, in_slices, dim); | | *this = arma::reshape(*this, in_rows, in_cols, in_slices, dim); | |
| } | | } | |
| | | | |
|
| | | //! change the cube to have user specified dimensions (data is preserved) | |
| | | template<typename eT> | |
| | | inline | |
| | | void | |
| | | Cube<eT>::resize(const uword in_rows, const uword in_cols, const uword in_s | |
| | | lices) | |
| | | { | |
| | | arma_extra_debug_sigprint(); | |
| | | | |
| | | *this = arma::resize(*this, in_rows, in_cols, in_slices); | |
| | | } | |
| | | | |
| //! change the cube (without preserving data) to have the same dimensions a
s the given cube | | //! change the cube (without preserving data) to have the same dimensions a
s the given cube | |
| template<typename eT> | | template<typename eT> | |
| template<typename eT2> | | template<typename eT2> | |
| inline | | inline | |
| void | | void | |
| Cube<eT>::copy_size(const Cube<eT2>& m) | | Cube<eT>::copy_size(const Cube<eT2>& m) | |
| { | | { | |
| arma_extra_debug_sigprint(); | | arma_extra_debug_sigprint(); | |
| | | | |
| init_warm(m.n_rows, m.n_cols, m.n_slices); | | init_warm(m.n_rows, m.n_cols, m.n_slices); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 12 lines changed or added | |
|
| Mat_bones.hpp | | Mat_bones.hpp | |
| | | | |
| skipping to change at line 292 | | skipping to change at line 292 | |
| | | | |
| inline void impl_raw_print(const std::string& extra_text) const; | | inline void impl_raw_print(const std::string& extra_text) const; | |
| inline void impl_raw_print(std::ostream& user_stream, const std::string&
extra_text) const; | | inline void impl_raw_print(std::ostream& user_stream, const std::string&
extra_text) const; | |
| | | | |
| inline void impl_raw_print_trans(const std::string& extra_text) const; | | inline void impl_raw_print_trans(const std::string& extra_text) const; | |
| inline void impl_raw_print_trans(std::ostream& user_stream, const std::st
ring& extra_text) const; | | inline void impl_raw_print_trans(std::ostream& user_stream, const std::st
ring& extra_text) const; | |
| | | | |
| template<typename eT2> | | template<typename eT2> | |
| inline void copy_size(const Mat<eT2>& m); | | inline void copy_size(const Mat<eT2>& m); | |
| | | | |
|
| inline void set_size(const uword in_elem); | | inline void set_size(const uword in_elem); | |
| inline void set_size(const uword in_rows, const uword in_cols); | | inline void set_size(const uword in_rows, const uword in_cols); | |
| inline void reshape(const uword in_rows, const uword in_cols, const uwo | | | |
| rd dim = 0); | | inline void resize(const uword in_elem); | |
| | | inline void resize(const uword in_rows, const uword in_cols); | |
| | | inline void reshape(const uword in_rows, const uword in_cols, const uwor | |
| | | d dim = 0); | |
| | | | |
| arma_hot inline const Mat& fill(const eT val); | | arma_hot inline const Mat& fill(const eT val); | |
| | | | |
| inline const Mat& zeros(); | | inline const Mat& zeros(); | |
| inline const Mat& zeros(const uword in_elem); | | inline const Mat& zeros(const uword in_elem); | |
| inline const Mat& zeros(const uword in_rows, const uword in_cols); | | inline const Mat& zeros(const uword in_rows, const uword in_cols); | |
| | | | |
| inline const Mat& ones(); | | inline const Mat& ones(); | |
| inline const Mat& ones(const uword in_elem); | | inline const Mat& ones(const uword in_elem); | |
| inline const Mat& ones(const uword in_rows, const uword in_cols); | | inline const Mat& ones(const uword in_rows, const uword in_cols); | |
| | | | |
| skipping to change at line 507 | | skipping to change at line 510 | |
| inline void init(const Base<pod_type,T1>& A, const Base<pod_type,T2>& B); | | inline void init(const Base<pod_type,T1>& A, const Base<pod_type,T2>& B); | |
| | | | |
| inline void steal_mem(Mat& X); | | inline void steal_mem(Mat& X); | |
| | | | |
| inline Mat(const char junk, const eT* aux_mem, const uword aux_n_rows, co
nst uword aux_n_cols); | | inline Mat(const char junk, const eT* aux_mem, const uword aux_n_rows, co
nst uword aux_n_cols); | |
| | | | |
| friend class Cube<eT>; | | friend class Cube<eT>; | |
| friend class glue_join; | | friend class glue_join; | |
| friend class op_strans; | | friend class op_strans; | |
| friend class op_htrans; | | friend class op_htrans; | |
|
| | | friend class op_resize; | |
| | | | |
| public: | | public: | |
| | | | |
| #ifdef ARMA_EXTRA_MAT_PROTO | | #ifdef ARMA_EXTRA_MAT_PROTO | |
| #include ARMA_INCFILE_WRAP(ARMA_EXTRA_MAT_PROTO) | | #include ARMA_INCFILE_WRAP(ARMA_EXTRA_MAT_PROTO) | |
| #endif | | #endif | |
| }; | | }; | |
| | | | |
| class Mat_aux | | class Mat_aux | |
| { | | { | |
| | | | |
End of changes. 2 change blocks. |
| 4 lines changed or deleted | | 8 lines changed or added | |
|
| Mat_meat.hpp | | Mat_meat.hpp | |
| | | | |
| skipping to change at line 3860 | | skipping to change at line 3860 | |
| { | | { | |
| arma_extra_debug_sigprint(); | | arma_extra_debug_sigprint(); | |
| | | | |
| init_warm(in_rows, in_cols); | | init_warm(in_rows, in_cols); | |
| } | | } | |
| | | | |
| //! change the matrix to have user specified dimensions (data is preserved) | | //! change the matrix to have user specified dimensions (data is preserved) | |
| template<typename eT> | | template<typename eT> | |
| inline | | inline | |
| void | | void | |
|
| | | Mat<eT>::resize(const uword in_elem) | |
| | | { | |
| | | arma_extra_debug_sigprint(); | |
| | | | |
| | | switch(vec_state) | |
| | | { | |
| | | case 0: | |
| | | case 1: | |
| | | (*this).resize(in_elem, 1); | |
| | | break; | |
| | | | |
| | | case 2: | |
| | | (*this).resize(1, in_elem); | |
| | | break; | |
| | | | |
| | | default: | |
| | | ; | |
| | | } | |
| | | } | |
| | | | |
| | | //! change the matrix to have user specified dimensions (data is preserved) | |
| | | template<typename eT> | |
| | | inline | |
| | | void | |
| | | Mat<eT>::resize(const uword in_rows, const uword in_cols) | |
| | | { | |
| | | arma_extra_debug_sigprint(); | |
| | | | |
| | | *this = arma::resize(*this, in_rows, in_cols); | |
| | | } | |
| | | | |
| | | //! change the matrix to have user specified dimensions (data is preserved) | |
| | | template<typename eT> | |
| | | inline | |
| | | void | |
| Mat<eT>::reshape(const uword in_rows, const uword in_cols, const uword dim) | | Mat<eT>::reshape(const uword in_rows, const uword in_cols, const uword dim) | |
| { | | { | |
| arma_extra_debug_sigprint(); | | arma_extra_debug_sigprint(); | |
| | | | |
| *this = arma::reshape(*this, in_rows, in_cols, dim); | | *this = arma::reshape(*this, in_rows, in_cols, dim); | |
| } | | } | |
| | | | |
| //! change the matrix (without preserving data) to have the same dimensions
as the given matrix | | //! change the matrix (without preserving data) to have the same dimensions
as the given matrix | |
| template<typename eT> | | template<typename eT> | |
| template<typename eT2> | | template<typename eT2> | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 35 lines changed or added | |
|
| Row_meat.hpp | | Row_meat.hpp | |
| | | | |
| skipping to change at line 16 | | skipping to change at line 16 | |
| // for any purpose. You can redistribute this file | | // for any purpose. You can redistribute this file | |
| // and/or modify it under the terms of the GNU | | // and/or modify it under the terms of the GNU | |
| // Lesser General Public License (LGPL) as published | | // Lesser General Public License (LGPL) as published | |
| // by the Free Software Foundation, either version 3 | | // by the Free Software Foundation, either version 3 | |
| // of the License or (at your option) any later version. | | // of the License or (at your option) any later version. | |
| // (see http://www.opensource.org/licenses for more info) | | // (see http://www.opensource.org/licenses for more info) | |
| | | | |
| //! \addtogroup Row | | //! \addtogroup Row | |
| //! @{ | | //! @{ | |
| | | | |
|
| | | //! construct an empty row vector | |
| template<typename eT> | | template<typename eT> | |
| inline | | inline | |
| Row<eT>::Row() | | Row<eT>::Row() | |
| : Mat<eT>(1, 0) | | : Mat<eT>(1, 0) | |
| { | | { | |
| arma_extra_debug_sigprint(); | | arma_extra_debug_sigprint(); | |
| | | | |
| access::rw(Mat<eT>::vec_state) = 2; | | access::rw(Mat<eT>::vec_state) = 2; | |
| } | | } | |
| | | | |
| template<typename eT> | | template<typename eT> | |
| inline | | inline | |
|
| | | Row<eT>::Row(const Row<eT>& X) | |
| | | : Mat<eT>(1, X.n_elem) | |
| | | { | |
| | | arma_extra_debug_sigprint(); | |
| | | | |
| | | access::rw(Mat<eT>::vec_state) = 2; | |
| | | | |
| | | arrayops::copy((*this).memptr(), X.memptr(), X.n_elem); | |
| | | } | |
| | | | |
| | | //! construct a row vector with the specified number of n_elem | |
| | | template<typename eT> | |
| | | inline | |
| Row<eT>::Row(const uword in_n_elem) | | Row<eT>::Row(const uword in_n_elem) | |
| : Mat<eT>(1, in_n_elem) | | : Mat<eT>(1, in_n_elem) | |
| { | | { | |
| arma_extra_debug_sigprint(); | | arma_extra_debug_sigprint(); | |
| | | | |
| access::rw(Mat<eT>::vec_state) = 2; | | access::rw(Mat<eT>::vec_state) = 2; | |
| } | | } | |
| | | | |
| template<typename eT> | | template<typename eT> | |
| inline | | inline | |
| | | | |
End of changes. 2 change blocks. |
| 0 lines changed or deleted | | 14 lines changed or added | |
|
| arma_version.hpp | | arma_version.hpp | |
| | | | |
| skipping to change at line 18 | | skipping to change at line 18 | |
| // Lesser General Public License (LGPL) as published | | // Lesser General Public License (LGPL) as published | |
| // by the Free Software Foundation, either version 3 | | // by the Free Software Foundation, either version 3 | |
| // of the License or (at your option) any later version. | | // of the License or (at your option) any later version. | |
| // (see http://www.opensource.org/licenses for more info) | | // (see http://www.opensource.org/licenses for more info) | |
| | | | |
| //! \addtogroup arma_version | | //! \addtogroup arma_version | |
| //! @{ | | //! @{ | |
| | | | |
| #define ARMA_VERSION_MAJOR 2 | | #define ARMA_VERSION_MAJOR 2 | |
| #define ARMA_VERSION_MINOR 4 | | #define ARMA_VERSION_MINOR 4 | |
|
| #define ARMA_VERSION_PATCH 0 | | #define ARMA_VERSION_PATCH 1 | |
| #define ARMA_VERSION_NAME "Loco Lounge Lizard" | | #define ARMA_VERSION_NAME "Loco Lounge Lizard" | |
| | | | |
| struct arma_version | | struct arma_version | |
| { | | { | |
| static const unsigned int major = ARMA_VERSION_MAJOR; | | static const unsigned int major = ARMA_VERSION_MAJOR; | |
| static const unsigned int minor = ARMA_VERSION_MINOR; | | static const unsigned int minor = ARMA_VERSION_MINOR; | |
| static const unsigned int patch = ARMA_VERSION_PATCH; | | static const unsigned int patch = ARMA_VERSION_PATCH; | |
| | | | |
| static | | static | |
| inline | | inline | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| armadillo | | armadillo | |
| | | | |
| skipping to change at line 168 | | skipping to change at line 168 | |
| #include "armadillo_bits/op_min_bones.hpp" | | #include "armadillo_bits/op_min_bones.hpp" | |
| #include "armadillo_bits/op_mean_bones.hpp" | | #include "armadillo_bits/op_mean_bones.hpp" | |
| #include "armadillo_bits/op_median_bones.hpp" | | #include "armadillo_bits/op_median_bones.hpp" | |
| #include "armadillo_bits/op_sort_bones.hpp" | | #include "armadillo_bits/op_sort_bones.hpp" | |
| #include "armadillo_bits/op_sum_bones.hpp" | | #include "armadillo_bits/op_sum_bones.hpp" | |
| #include "armadillo_bits/op_stddev_bones.hpp" | | #include "armadillo_bits/op_stddev_bones.hpp" | |
| #include "armadillo_bits/op_strans_bones.hpp" | | #include "armadillo_bits/op_strans_bones.hpp" | |
| #include "armadillo_bits/op_var_bones.hpp" | | #include "armadillo_bits/op_var_bones.hpp" | |
| #include "armadillo_bits/op_repmat_bones.hpp" | | #include "armadillo_bits/op_repmat_bones.hpp" | |
| #include "armadillo_bits/op_reshape_bones.hpp" | | #include "armadillo_bits/op_reshape_bones.hpp" | |
|
| | | #include "armadillo_bits/op_resize_bones.hpp" | |
| #include "armadillo_bits/op_cov_bones.hpp" | | #include "armadillo_bits/op_cov_bones.hpp" | |
| #include "armadillo_bits/op_cor_bones.hpp" | | #include "armadillo_bits/op_cor_bones.hpp" | |
| #include "armadillo_bits/op_shuffle_bones.hpp" | | #include "armadillo_bits/op_shuffle_bones.hpp" | |
| #include "armadillo_bits/op_prod_bones.hpp" | | #include "armadillo_bits/op_prod_bones.hpp" | |
| #include "armadillo_bits/op_pinv_bones.hpp" | | #include "armadillo_bits/op_pinv_bones.hpp" | |
| #include "armadillo_bits/op_dotext_bones.hpp" | | #include "armadillo_bits/op_dotext_bones.hpp" | |
| #include "armadillo_bits/op_flip_bones.hpp" | | #include "armadillo_bits/op_flip_bones.hpp" | |
| #include "armadillo_bits/op_princomp_bones.hpp" | | #include "armadillo_bits/op_princomp_bones.hpp" | |
| #include "armadillo_bits/op_misc_bones.hpp" | | #include "armadillo_bits/op_misc_bones.hpp" | |
| #include "armadillo_bits/op_relational_bones.hpp" | | #include "armadillo_bits/op_relational_bones.hpp" | |
| | | | |
| skipping to change at line 314 | | skipping to change at line 315 | |
| #include "armadillo_bits/fn_var.hpp" | | #include "armadillo_bits/fn_var.hpp" | |
| #include "armadillo_bits/fn_sort.hpp" | | #include "armadillo_bits/fn_sort.hpp" | |
| #include "armadillo_bits/fn_sort_index.hpp" | | #include "armadillo_bits/fn_sort_index.hpp" | |
| #include "armadillo_bits/fn_strans.hpp" | | #include "armadillo_bits/fn_strans.hpp" | |
| #include "armadillo_bits/fn_chol.hpp" | | #include "armadillo_bits/fn_chol.hpp" | |
| #include "armadillo_bits/fn_qr.hpp" | | #include "armadillo_bits/fn_qr.hpp" | |
| #include "armadillo_bits/fn_svd.hpp" | | #include "armadillo_bits/fn_svd.hpp" | |
| #include "armadillo_bits/fn_solve.hpp" | | #include "armadillo_bits/fn_solve.hpp" | |
| #include "armadillo_bits/fn_repmat.hpp" | | #include "armadillo_bits/fn_repmat.hpp" | |
| #include "armadillo_bits/fn_reshape.hpp" | | #include "armadillo_bits/fn_reshape.hpp" | |
|
| | | #include "armadillo_bits/fn_resize.hpp" | |
| #include "armadillo_bits/fn_cov.hpp" | | #include "armadillo_bits/fn_cov.hpp" | |
| #include "armadillo_bits/fn_cor.hpp" | | #include "armadillo_bits/fn_cor.hpp" | |
| #include "armadillo_bits/fn_shuffle.hpp" | | #include "armadillo_bits/fn_shuffle.hpp" | |
| #include "armadillo_bits/fn_prod.hpp" | | #include "armadillo_bits/fn_prod.hpp" | |
| #include "armadillo_bits/fn_eps.hpp" | | #include "armadillo_bits/fn_eps.hpp" | |
| #include "armadillo_bits/fn_pinv.hpp" | | #include "armadillo_bits/fn_pinv.hpp" | |
| #include "armadillo_bits/fn_rank.hpp" | | #include "armadillo_bits/fn_rank.hpp" | |
| #include "armadillo_bits/fn_kron.hpp" | | #include "armadillo_bits/fn_kron.hpp" | |
| #include "armadillo_bits/fn_flip.hpp" | | #include "armadillo_bits/fn_flip.hpp" | |
| #include "armadillo_bits/fn_as_scalar.hpp" | | #include "armadillo_bits/fn_as_scalar.hpp" | |
| | | | |
| skipping to change at line 384 | | skipping to change at line 386 | |
| #include "armadillo_bits/op_min_meat.hpp" | | #include "armadillo_bits/op_min_meat.hpp" | |
| #include "armadillo_bits/op_mean_meat.hpp" | | #include "armadillo_bits/op_mean_meat.hpp" | |
| #include "armadillo_bits/op_median_meat.hpp" | | #include "armadillo_bits/op_median_meat.hpp" | |
| #include "armadillo_bits/op_sort_meat.hpp" | | #include "armadillo_bits/op_sort_meat.hpp" | |
| #include "armadillo_bits/op_sum_meat.hpp" | | #include "armadillo_bits/op_sum_meat.hpp" | |
| #include "armadillo_bits/op_stddev_meat.hpp" | | #include "armadillo_bits/op_stddev_meat.hpp" | |
| #include "armadillo_bits/op_strans_meat.hpp" | | #include "armadillo_bits/op_strans_meat.hpp" | |
| #include "armadillo_bits/op_var_meat.hpp" | | #include "armadillo_bits/op_var_meat.hpp" | |
| #include "armadillo_bits/op_repmat_meat.hpp" | | #include "armadillo_bits/op_repmat_meat.hpp" | |
| #include "armadillo_bits/op_reshape_meat.hpp" | | #include "armadillo_bits/op_reshape_meat.hpp" | |
|
| | | #include "armadillo_bits/op_resize_meat.hpp" | |
| #include "armadillo_bits/op_cov_meat.hpp" | | #include "armadillo_bits/op_cov_meat.hpp" | |
| #include "armadillo_bits/op_cor_meat.hpp" | | #include "armadillo_bits/op_cor_meat.hpp" | |
| #include "armadillo_bits/op_shuffle_meat.hpp" | | #include "armadillo_bits/op_shuffle_meat.hpp" | |
| #include "armadillo_bits/op_prod_meat.hpp" | | #include "armadillo_bits/op_prod_meat.hpp" | |
| #include "armadillo_bits/op_pinv_meat.hpp" | | #include "armadillo_bits/op_pinv_meat.hpp" | |
| #include "armadillo_bits/op_dotext_meat.hpp" | | #include "armadillo_bits/op_dotext_meat.hpp" | |
| #include "armadillo_bits/op_flip_meat.hpp" | | #include "armadillo_bits/op_flip_meat.hpp" | |
| #include "armadillo_bits/op_princomp_meat.hpp" | | #include "armadillo_bits/op_princomp_meat.hpp" | |
| #include "armadillo_bits/op_misc_meat.hpp" | | #include "armadillo_bits/op_misc_meat.hpp" | |
| #include "armadillo_bits/op_relational_meat.hpp" | | #include "armadillo_bits/op_relational_meat.hpp" | |
| | | | |
End of changes. 3 change blocks. |
| 0 lines changed or deleted | | 3 lines changed or added | |
|