import Ġjava . util .* Ċ import Ġkotlin . Comparator Ċ Ċ class ĠTime Map Ġ{ ĊĊĠĠĠ Ġprivate Ġclass ĠSort By Timestamp Comparator Ġ: ĠComparator < Pair < Int , String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcompare ( p 0 : ĠPair < Int , ĠString > ?, Ġp 1 : ĠPair < Int , ĠString >? ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 0 Ġ== Ġnull Ġ&& Ġp 1 Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 0 Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 1 Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp 0 . first . compareTo ( p 1 . first ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġstore Ġ= ĠTreeMap < String , Tree Set < Pair < Int , String >> >() ĊĠĠĠ Ġfun Ġset ( key : ĠString , Ġvalue : ĠString , Ġtimestamp : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstore . compute If Absent ( key ) Ġ{ Tree Set ( Sort By Timestamp Comparator ()) Ġ}. add ( Pair ( timestamp , value )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ( key : ĠString , Ġtimestamp : ĠInt ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreturn Pair Ġ= Ġstore . get OrDefault ( key , Tree Set ()). floor ( Pair ( timestamp , "" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( return Pair Ġ?: ĠPair ( timestamp , "" )). second ĊĠĠĠ Ġ} Ċ }