d dd d d d d d d d f f f f ff f f f f f f d d d d d d f f d d d d d d d d f c f f f f f f f f f ff d d d d d d d d d d d f d d d d d d f d f d f f f d d d d d d d d d d d d d f c f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f c f f f f d d d d d d f f f f f f f ff f f f f f f f f f f f f ff f f f f f f c f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f