}}z}{}}}{}}}{}}}{|}}{}}}{}}}{}}}{}z}{}}}y}}}{}}}{}}}{}}{|}}}{}}}}}z}{}}}{}}}{}}}{|}}{}}}{}}}{}}}{}z}{}}}y}}}{}}}{}}}{}}{|}}}{}}}}}z}{}}}{}}}{}}}{|}}{}}}yzzzy}}}{}z}{{{{x{{{z{{{z{{{z{{zz{{{z}}}}}z}z|||{}}}z{{{z{{yz}}}|}}}{}}}|}|}{}}}y}}}{}}}|}}}{}}||}}}{}}}{{y{y{{{{|{{{|~~}}~z~~~}}}}{}}}{}z}yzzzx~~{~~~z{{{z{{zz{{{z{z{}}z}z}}}{~}}}~}}{|}z}~}}{}}}{}}}{}z}{}}}y}}~{}}}zzzzyzzyyzzz{}{}}}z}z}}}{~}}}~}}{|}z}~}}{}}}{}}}{}|~{~~~y}}~{}}}{~~~{~~{|}}}{}{}}}z}z}}}{~}}}~}}{|}z}~}}{}}}{}}}{}z}{}}}y}}~{}}}z}}}{}}{|}}}{}{}{{x|y|{{z|{{{}{{z{{}{{|{z|z|{{{|z{z{{zy{z{{|z{{{z{{{z{{z{{{{y{{{}}}}z~|}{~}}}~}}{}}~}|}}{~|~{}}~{}z}~|z}{}}~y}~}z}}}~}}{|}}}z}{}}}}}z~|}{~}}}~}}{}}~}|}}{~|~{}}~{}z}~|z}{}}~y}~}z}}}~}}{|}}}z}{}}}}}z~|}{~}}}~}}{}}~}|}}{~|~{}}~{}z}~|z}{}}~y}~}z}}}~}}{|}}}z}{}{{z{{|{|{|||{|||{||||||{{}|}|}}}|}|}}|{}|}}}|}}}{|||{||{{{{{y{{{}}{}z~|}{~z}z~}}{}}~}|}z{~|~{}}~{}z}~|z}{}}~z}~}{}}}|}}{|}}}z}}{}}{}z~|}{~z}z~}}{}}~}|}z{~|~{}}~{}z}~|z}{}}~z}~}{}}}|}}{|}}}|}}{}}{}z~|}{~z}z~}}{}}~}|}z{~|~{}}~{}z}~|z}{}}~z}~}{}}}|}}{|}}}|}}{{{z|y|z{z|y{y}{{z{{|{{{{{{{{{{{z{{{{{{z{{{{|{{{{{{{||{{z{}y{z{{{}}|}z~|}{~z}y~}}z}}~}~}y{~|~}}}z{}z}~|y}{}}~z}~}{}}~|}}{|~z}z}}}}}|}z~|}{~z}y~}}z}}~}~}y{}~}~z}~|~}y{}~~|~~}~~}~~}|~z}z}}}}}{|z}{|z}y|y}||z{{|z|{z{|{||||{{z{|z{{{{|z|{|||y}}~|}}{|~z}z}}}{{z{z~|}{~z}y~}}z}}~z~}y{~|~}}}z{zz}z|z{{}y~z}~}{}}~|}}{|~z}y{z{}}|}|~|}}~z}z~}}{~}~z~}y}~|~}}}z}z}}z|z{}}y~}}~}}}}~|}}}}~z}|}{}}}|}|~|}{~z}y~}}z}}~z~}y{~|~}|}z{zz}z|z{{}z}z}~}{}}~|}}{|~z}|}{}}}|}|~|}{~z}y~}}z}}~z~}y{~|~}|}z{zz}z|z{{}z}z}~}{}}~|}}{|~z}|}{}{{y|z|z{z|y{z|{{{{{|z{{|z{z{|z{zz{z{yzyzz{y{z{|{z{{||{|z{}x{y{z{}}{}|}|}{~z}y~}}z}}~z~}{{~y~}y}z{zz}z|z{{}z}z}~}{}}~|}}{|}y}z}{}}}{}|}|}{~z}y~}}z}}~z~}{{~y~}y}z{zz}z|z{{}z}z}~}{}}~|}}{|}y}z}{}}}{}|}|}{~z}y~}}z}}z}|}y~y~z}z|~z}z{{}z}z}~}{}}~|}}{|}y}z}{}{{z{z{z{z~z}y~}}z}}~z~}{{~y~}y}z{zz}z|z{{}z}z{{{z{{{x{{zz{x{y{{{}}{}|}|}}~z}z~}}{~}~z~}|{|{|{{{z{z{{|zzz|{z{}}~}}}}~y}}}}}|}z}}{}}{}|}|}{~z}y~}}z}}~z~}{{~|~z|}z{}z}~yz{z}~}z}~}{}}~y}}{|}|}z}}{}}{}|}|}{~z}y~}}z}}~z~}{{~|~z|}z{}z}~yz{z}~}z}~}{}}~y}}{|}|}z}}{{{z|z{{{z|y}y}{{z|{}y}|zz|z|z{|yz{z{|xzzz{}{z{|{y{{}y{|z{{|{y{{{}}{}|||}{~z~z~}}z}}}z~}{{~|~z|}y{}z}~yz{z}~}z}~}z}}~y}}{|}|}z}}}}}{}|||}{~z~z~}}z}}}z~}{y|{|z{|z{|{||zz{||z|z}~}z}}~y}}{|}|}z}}}}}z{zzz{z~z~z~}}z}}}z~}{{~|~z|}y{}z}~yz{z}z}z}~}z}}~y}}{|}|}z}}}{{z{|||}{~z~z~}}z}}}z~}{{~|~z|}y{}z}~yz{z}z}z}~}z}}~y}}{|}|}z{z{}}{}|||}{}y}z}}}z}}}z}|{{}|}y|}y{}z}}yzzz}y}z}}}z}}}y}}{|}|}z}{}}}{}|||}{~z~z~}}z}}}z~}{{~|~z|}y{}z}~yz{{~z~z}~}z}}~y}}{|}|}z}{}}}{}|||}{~z~z~}}z}}}z~}{{~|~z|}y{}z}~yz{z}z}z}~}z}}~z}}{|}|}z}{}{y{|z{z|z|x}y}{{z{{{z|{z{{{{|{{{{{{{{{z{}{{{{}y{y{{|z{|z{{|{y{{{}{}}|}|}{}z~z~}}z}}}z~}}y~{}}}{}{}z}z|y{z|{}y}z}z}}|z~}{|}|}z}}}}{}}|}|}{}z~z~}}z}}}z~}}y~{}}}{}{}z}z|y{z|{}y}z}z}}|z~}{|}|}z}}}}{}}|}|}{}z~z~}}z}}}z~}}y~{}}}{}{}z}z|y{z{|}y}z}z}}|z~}{|}|}z}}}{z{zz{z{z{z~z~}}{}|}y~}|y}{|}|{|{}|}z|z{{{|}z}z}zzzzxzzzzzzzy{{z}}}{|}|}|}|~z~}}{}}~z~}}y~{}}}{}|}|}z|z{{{|}z}z}z}}|~~}||}|}z}}{}}}{|}|}{}z~z~}}z}}}z~}}y~y~}}{}{}z}z|y{zzzzy}z}z}}|~~}{|}|}z}}{}}}{|}|}{}z~z~}}z}}}z~}}y~y~}}{}{}z}z|y{z}}}y}z}z}}|~~}{|}|}z}}{{{{|y{z|z{z}y|{{z|{|y}|{x|x}}{z{z{z{yzyzz{{{y{z{z{{{{|{z{{|{z{{z}{}}{}|}{}}~z~}}z}}}z~}}y~y~}}{}{}z}z|}{x}}}y}z}{}~}}}}{|}|}z}}{}z{{z{z{{}}~z~}}z}}}z~}}y~y~}}{}{}z~z}~{yzzzx~z~}~~~~~{|}|}z}}{}{}}{}|}{}}~z~}}z}}}z~}}y~y~}}{}{}z}z|}{x}}}y}z}{}~}}}}{|}|}z}}{{z{zz}|}{{{|{{{{z{{{{|{{|}||}zzzz}z}z|}{xzzzz{y{z{{{{{{zz{z{y{{z}}}{{}|}{}}~{~}}{}}}}~}}{~}}}}{}{}|~z}~{y~~~z}z}{}~}}}}{|}|}z}}{}}}{{}|}{}}~{~}}{}}}}~}}{~}}}}{}{}z}z|}{x}}}y}z}{}~}}}}{|}|}z}}{}}}{{}|}{}}~{~}}{}}}}~}}{~}}}}{}{}z}z|}{x}}}y}z}|~~~~~||}|}z}}{{{z|y{{|zz{}z|{{z{{|z|{{z{z|}{z{z{z{y{{zw{{{y{y{z{}{yzzyzzzzy{{z}}{}{}}}{{}~{~}}{|}}{~}}{}z}}}{}{}|~~~~{z~~~{~~~}~~~{~~}|}}}{}}{}}{}{}}}{{}~{~}}{|}}{~}}{}z}}}{}{}z}}}}{y}}}{}}}{}}}{}}{|}}}{}}{}}{}{}}}|{}~{~}}||}}{~}}|}z}}}{}|}{~~~~{y~~~{~~~|}}}{}}{|}}}{}}{{{z{z{{{zz~{~~~|}~~{~~~|~z~~~{~|}y{{{{zx{{{z{{{z{{{z{{zz{{{z{{z}}{}{}}}}~{{z{{{{{{{z{{{{{z{{{z{{{z{{{{{y{{{z{{{{{{{z{{}|}}}{}}}}}{{{}}}{}}}{}}}{|}}{}}}{}z}z{{{z{y{z}}}y}}}{}}}{}}}{}}{|}}}{}}}}}}}{}}}{}}}{}}}zzzzzzzzzzyzzzzzz}z}z{{{x{{{z{{{z{{{z{{z|}}}{}}}