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