--@@@@//
                                @@@@//  @@@@//
                          --@@@@@@@@@@@@//  @@@@@@<<
                      --@@@@//  @@//@@@@@@22  @@//@@@@@@<<
                  --@@@@..      @@@@@@..@@//22@@--////@@@@<<
                  @@--..            ....@@22@@@@22--////@@@@
                  @@..                  @@@@@@2222//--//22@@
                  @@22                  ////222222//--//@@@@
                  @@22//                  ....----////@@@@@@
                  @@//  ......          ......//@@@@@@@@@@@@
                  @@//        ......--////2222@@@@2222@@@@@@
                  <<@@@@            ..----////222222@@@@@@<<
                    @@22@@DD..      ..----////22@@@@@@@@@@
                    @@--....////DD@@@@@@@@@@@@@@@@@@@@@@@@
                    @@------        ....--////22222222@@@@
                    @@--22--      22    ..--@@------@@@@@@
                    @@--22--    22----  ..@@2222--22@@@@@@
                    @@--22--    22----  ..@@2222--22@@@@@@
                    @@--22--    22----  ..@@2222--22@@@@@@
                    @@--22--    22----  ..@@2222--22@@@@@@
                    @@--22--    22----  ..@@2222--22@@@@@@<<--..
                    @@--22--    22----  ..@@2222--22@@@@@@DD11<<--..
                    @@--22--    22----  ..@@2222--22@@@@@@@@@@DD11<<--..
                    @@--22--    22----  ..@@2222--22@@@@@@@@@@@@@@22//--
                    @@--22--    22----  ..@@2222--22@@@@@@@@@@@@@@@@00""
                    @@--22--    22----  ..@@2222--22@@@@@@@@@@@@@@0011--
                    @@------    22----  ..@@2222--22@@@@@@@@@@@@@@00<<..
                    @@----      22----  ..@@2222--2222@@@@@@@@DD00<<''
                    @@22          22    ....@@----22@@@@@@@@DD00<<''
                    <<@@@@--            ------////22@@@@@@0011<<..
                        <<@@@@22----....----22@@@@@@@@DD00<<''..
                            <<@@@@@@@@@@@@@@@@@@@@DD00<<..
----------------------------------------------------------------------------
----------------------
----------------------------------------------------------------------------
----------------------
------@@@@@@----------------------------@@--------------------@@------@@----
--@@------------------
----@@------@@--------------------------@@----------------------------@@----
--@@------------------
----@@------------@@@@------@@--@@@@----@@@@@@------@@@@------@@------@@----
--@@------@@@@--------
----@@----------@@----@@----@@@@--------@@----@@--@@----@@----@@------@@----
--@@----@@----@@------
----@@----------@@----@@----@@----------@@----@@--@@@@@@@@----@@------@@----
--@@----@@@@@@@@------
----@@----------@@----@@----@@----------@@----@@--@@----------@@------@@----
--@@----@@------------
----@@------@@--@@----@@----@@----------@@----@@--@@----@@----@@------@@----
--@@----@@----@@------
------@@@@@@------@@@@------@@----------@@@@@@------@@@@------@@------@@----
--@@------@@@@--------
----------------------------------------------------------------------------
----------------------
----------------------------------------------------------------------------
----------------------
----------------------------------------------------------------------------
----------------------