package Ġcom . atlassian . performance . tools . report . chart . water fall Ċ Ċ import Ġcom . atlassian . performance . tools . report . Json Style Ċ import Ġjava . net . URI Ċ import Ġjava . text . Decimal Format Ċ import Ġjavax . json . JsonObject Ċ Ċ internal Ġclass ĠUtils Ġ{ ĊĊĠĠĠ Ġfun Ġto Human Readable Size ( size : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( size Ġ<= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 0 " ĊĠĠĠĠĠĠĠ Ġval Ġunits Ġ= ĠarrayOf (" B ", Ġ" KB ", Ġ" MB ", Ġ" GB ", Ġ" TB ") ĊĠĠĠĠĠĠĠ Ġval Ġdigit Groups Ġ= Ġ( Math . log 1 0 ( size . toDouble ()) Ġ/ ĠMath . log 1 0 ( 1 0 2 4 . 0 )). toInt () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDecimal Format ("# , ## 0 .# "). format ( size Ġ/ ĠMath . pow ( 1 0 2 4 . 0 , Ġdigit Groups . toDouble ())) Ġ+ Ġ" Ġ" Ġ+ Ġunits [ digit Groups ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpretty Print ( json : ĠJsonObject ): ĠString Ġ= ĠJson Style (). pretty Print ( json ) ĊĊĠĠĠ Ġfun Ġpretty Print ( address : ĠURI ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġaddress . path Ġ?: Ġaddress . scheme Specific Part Ġ?: Ġ" unknown " ĊĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= Ġpath . substring ( path . lastIndexOf ('/') Ġ+ Ġ 1 ) Ġ+ Ġ( address . query Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġval ĠmaxLength Ġ= Ġ 3 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( label . length Ġ> ĠmaxLength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . substring ( 0 , ĠmaxLength Ġ- Ġ 3 ) Ġ+ Ġ" ..." ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }