public class Main {
public static void main
( String [ ] asdf
) { try ( java.
util .
Scanner in
= new java.
util .
Scanner ( System .
in ) ) { while ( in.hasNext ( ) ) {
System .
out .
print ( line
+ " -> " ) ; if ( isLeet( line) ) {
for ( String leet
: l2t.
keySet ( ) ) line
= line.
replace ( leet, l2t.
get ( leet
) .
toString ( ) ) ; } else {
for ( char c : line.toCharArray ( ) ) {
System .
out .
print ( ( t2l.
containsKey ( cl
) ) ? ( t2l.
get ( cl
) ) : ( c
) ) ; }
}
}
}
}
private static boolean isLeet
( String s
) { for ( String leet
: l2t.
keySet ( ) ) if ( s.
contains ( leet
) ) return true ; return false ;
}
private static java.
util .
HashMap < Character , String
> t2l
= new java.
util .
HashMap <> ( ) ; private static java.
util .
HashMap < String , Character
> l2t
= new java.
util .
HashMap <> ( ) ; static {
t2l.put ( 'a' , "4" ) ;
t2l.put ( 'b' , "6" ) ;
t2l.put ( 'e' , "3" ) ;
t2l.put ( 'i' , "1" ) ;
t2l.put ( 'l' , "1" ) ;
t2l.put ( 'm' , "(V)" ) ;
t2l.put ( 'n' , "(\\ )" ) ;
t2l.put ( 'o' , "0" ) ;
t2l.put ( 's' , "5" ) ;
t2l.put ( 't' , "7" ) ;
t2l.put ( 'v' , "\\ /" ) ;
t2l.put ( 'w' , "`//" ) ;
for ( java.
util .
Map .
Entry < Character , String
> e
: t2l.
entrySet ( ) ) l2t.
put ( e.
getValue ( ) , e.
getKey ( ) ) ; }
}
cHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXNkZikgewoJCXRyeSAoamF2YS51dGlsLlNjYW5uZXIgaW4gPSBuZXcgamF2YS51dGlsLlNjYW5uZXIoU3lzdGVtLmluKSkgewoJCQl3aGlsZSAoaW4uaGFzTmV4dCgpKSB7CgkJCQlTdHJpbmcgbGluZSA9IGluLm5leHRMaW5lKCk7CgkJCQlTeXN0ZW0ub3V0LnByaW50KGxpbmUgKyAiIC0+ICIpOwoJCQkJaWYgKGlzTGVldChsaW5lKSkgewoJCQkJCWZvciAoU3RyaW5nIGxlZXQgOiBsMnQua2V5U2V0KCkpIGxpbmUgPSBsaW5lLnJlcGxhY2UobGVldCwgbDJ0LmdldChsZWV0KS50b1N0cmluZygpKTsKCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4obGluZSk7CgkJCQl9IGVsc2UgewoJCQkJCWZvciAoY2hhciBjIDogbGluZS50b0NoYXJBcnJheSgpKSB7CgkJCQkJCWNoYXIgY2wgPSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoYyk7CgkJCQkJCVN5c3RlbS5vdXQucHJpbnQoKHQybC5jb250YWluc0tleShjbCkpPyh0MmwuZ2V0KGNsKSk6KGMpKTsKCQkJCQl9CgkJCQkJU3lzdGVtLm91dC5wcmludGxuKCk7CgkJCQl9CgkJCX0KCQl9Cgl9Cglwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTGVldChTdHJpbmcgcykgewoJCWZvciAoU3RyaW5nIGxlZXQgOiBsMnQua2V5U2V0KCkpIGlmIChzLmNvbnRhaW5zKGxlZXQpKSByZXR1cm4gdHJ1ZTsKCQlyZXR1cm4gZmFsc2U7Cgl9Cglwcml2YXRlIHN0YXRpYyBqYXZhLnV0aWwuSGFzaE1hcDxDaGFyYWN0ZXIsIFN0cmluZz4gdDJsID0gbmV3IGphdmEudXRpbC5IYXNoTWFwPD4oKTsKCXByaXZhdGUgc3RhdGljIGphdmEudXRpbC5IYXNoTWFwPFN0cmluZywgQ2hhcmFjdGVyPiBsMnQgPSBuZXcgamF2YS51dGlsLkhhc2hNYXA8PigpOwoJc3RhdGljIHsKCQl0MmwucHV0KCdhJywgIjQiKTsKCQl0MmwucHV0KCdiJywgIjYiKTsKCQl0MmwucHV0KCdlJywgIjMiKTsKCQl0MmwucHV0KCdpJywgIjEiKTsKCQl0MmwucHV0KCdsJywgIjEiKTsKCQl0MmwucHV0KCdtJywgIihWKSIpOwoJCXQybC5wdXQoJ24nLCAiKFxcKSIpOwoJCXQybC5wdXQoJ28nLCAiMCIpOwoJCXQybC5wdXQoJ3MnLCAiNSIpOwoJCXQybC5wdXQoJ3QnLCAiNyIpOwoJCXQybC5wdXQoJ3YnLCAiXFwvIik7CgkJdDJsLnB1dCgndycsICJgLy8iKTsKCQlmb3IgKGphdmEudXRpbC5NYXAuRW50cnk8Q2hhcmFjdGVyLCBTdHJpbmc+IGUgOiB0MmwuZW50cnlTZXQoKSkgbDJ0LnB1dChlLmdldFZhbHVlKCksIGUuZ2V0S2V5KCkpOwoJfQp9