-------------------------.------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------.-----------------------
--------------------------------------------------
--------------------------------------------------
----------------.---------------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
------------------------------------------------.-
-------------.--------.-.-.-.-.--.-.-.-.-.-.-.-.--
.-.-.-.-.-.-.--.-.-.------------------------------
--------------------------------------------------
--------------------------------------------------
-----------------------