^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ###^^^^^^^^###^^########^^###^^^^##^^^^^^^^^###^^^########^^ ^###^^^^^^###^^###^^^^###^###^^^^^###^^^^^^###^^^###^^^^###^ ^^###^^^^###^^^###^^^^###^###^^^^^^###^^^^###^^^^###^^^^###^ ^^^########^^^^###^^^^###^###^^^^^^^########^^^^^###^^^^###^ ^^^^######^^^^^###^^^^###^#########^^######^^^^^^###^^^^###^ ^^^^^####^^^^^^^########^^#########^^^####^^^^^^^^########^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^