package Ġnet . b jo ern pe ters en . local mp 3 . provider Ċ Ċ import Ġcom . mp at ric . mp 3 agic . Base Exception Ċ import Ġcom . mp at ric . mp 3 agic . Mp 3 File Ċ import Ġmu . Kotlin Logging Ċ import Ġnet . b jo ern pe ters en . music bot . spi . image . ImageData Ċ import Ġjava . io . IOException Ċ import Ġjava . nio . file . Path Ċ Ċ private Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{ Ġ} Ċ Ċ fun Ġload Image ( basePath : ĠPath , Ġpath : ĠPath ): ĠImage Data ? Ġ{ ĊĠĠĠ Ġif Ġ(! path . normalize (). startsWith ( basePath . normalize ())) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . warn Ġ{ Ġ" Tri ed Ġto Ġload Ġdata Ġfrom Ġrestricted Ġfile : Ġ$ path " Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmp 3 File Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠM p 3 File ( path ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠBase Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ(! mp 3 File . has Id 3 v 2 Tag ()) Ġreturn Ġnull ĊĠĠĠ Ġval Ġtag Ġ= Ġmp 3 File . id 3 v 2 Tag ĊĠĠĠ Ġval Ġimage Ġ= Ġtag . album Image Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġtype Ġ= Ġtag . album Image MimeType Ġ?: Ġ" image /* " ĊĠĠĠ Ġreturn ĠImage Data ( type , Ġimage ) Ċ } Ċ