package Ġcom . did ig lobal . boost er . task . compression Ċ Ċ import Ġcom . did ig lobal . boost er . a apt 2 . Binary Parser Ċ import Ġcom . did ig lobal . boost er . a apt 2 . MAGIC Ċ import Ġcom . did ig lobal . boost er . a apt 2 . RES _ FILE Ċ import Ġcom . did ig lobal . boost er . a apt 2 . Resources Internal Ċ import Ġorg . gradle . api . logging . Logging Ċ import Ġjava . io . File Ċ Ċ private Ġval Ġlogger Ġ= ĠLogging . getLogger ( Build . AR TI FACT ) Ċ Ċ internal Ġval ĠFile . metadata : ĠResources Internal . Compiled File ? ĊĠĠĠ Ġget () Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠBinary Parser ( this ). use Ġ{ Ġparser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmagic Ġ= Ġparser . readInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( MAGIC Ġ!= Ġmagic ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Invalid ĠA AP T 2 Ġcontainer Ġmagic Ġ 0 x ${ magic . toString ( 1 6 )} : Ġ`${ this . absolute Path }` ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġparser . readInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( version Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Invalid ĠA AP T 2 Ġcontainer Ġversion Ġ$ version : Ġ`${ this . absolute Path }` ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġparser . readInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" Empty ĠA AP T 2 Ġcontainer Ġ`${ this . absolute Path }` ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparser . parse Res Entry () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . error (" Parse Ġ`${ this . absolute Path }` Ġfailed ", Ġt ) ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ Ċ @ Suppress (" UNUSED _ VARIABLE ") Ċ private Ġfun ĠBinary Parser . parse Res Entry (): ĠResources Internal . Compiled File ? Ġ{ ĊĠĠĠ Ġval Ġp Ġ= Ġtell () ĊĠĠĠ Ġval Ġtype Ġ= Ġread Int () ĊĠĠĠ Ġval Ġlength Ġ= Ġread Long () ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠRES _ FILE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Size Ġ= Ġread Int () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Size Ġ= Ġread Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparse Ġ{ ĠResources Internal . Compiled File . parseFrom ( read Bytes ( header Size )) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġseek ( p Ġ+ Ġlength . toInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ internal Ġval ĠResources Internal . Compiled File . resource Path : ĠString ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsrc Ġ= ĠFile ( this . source Path ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ src . parent File . name }${ File . separator Char }${ src . name }" ĊĠĠĠ Ġ} ĊĊ