/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠB ab ylon ĠPart ners ĠLimited Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . babylon . certificate tr ansparency . internal . log list . model . v 2 Ċ Ċ import Ġcom . babylon . certificate tr ansparency . internal . log list . de serializer . R fc 3 3 3 9 Deserializer Ċ import Ġcom . babylon . certificate tr ansparency . internal . log list . de serializer . State Deserializer Ċ import Ġcom . google . gson . annotations . Json Adapter Ċ import Ġcom . google . gson . annotations . SerializedName Ċ Ċ /** Ċ Ġ* Ġ@ property Ġtimestamp ĠThe Ġtime Ġat Ġwhich Ġthe Ġlog Ġentered Ġthis Ġstate . Ċ Ġ*/ Ċ @ Json Adapter ( State Deserializer :: class ) Ċ internal Ġsealed Ġclass ĠState Ġ{ ĊĠĠĠ Ġabstract Ġval Ġtimestamp : ĠLong ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn ĠS CT Ġassociated Ġwith Ġthis Ġlog Ġserver Ġwould Ġbe Ġtreated Ġas Ġun trusted ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠPending ( ĊĠĠĠĠĠĠĠ Ġ@ Json Adapter ( R fc 3 3 3 9 Deserializer :: class ) Ġoverride Ġval Ġtimestamp : ĠLong ĊĠĠĠ Ġ) Ġ: ĠState () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValidate ĠS CT Ġagainst Ġthis Ġ( any Ġtimestamp Ġokay ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠQual ified ( ĊĠĠĠĠĠĠĠ Ġ@ Json Adapter ( R fc 3 3 3 9 Deserializer :: class ) Ġoverride Ġval Ġtimestamp : ĠLong ĊĠĠĠ Ġ) Ġ: ĠState () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValidate ĠS CT Ġagainst Ġthis Ġ( any Ġtimestamp Ġokay ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠUs able ( ĊĠĠĠĠĠĠĠ Ġ@ Json Adapter ( R fc 3 3 3 9 Deserializer :: class ) Ġoverride Ġval Ġtimestamp : ĠLong ĊĠĠĠ Ġ) Ġ: ĠState () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValidate ĠS CT Ġagainst Ġthis Ġif Ġit Ġwas Ġissued Ġbefore Ġthe Ġtimestamp , Ġotherwise ĠS CT Ġis Ġun trusted ĊĠĠĠĠ Ġ* Ġ@ property Ġfinal Tree Head ĠThe Ġtree Ġhead Ġ( tree Ġsize Ġand Ġroot Ġhash ) Ġat Ġwhich Ġthe Ġlog Ġwas Ġfrozen . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠReadOnly ( ĊĠĠĠĠĠĠĠ Ġ@ Json Adapter ( R fc 3 3 3 9 Deserializer :: class ) Ġoverride Ġval Ġtimestamp : ĠLong , ĊĠĠĠĠĠĠĠ Ġ@ SerializedName (" final _ tree _ head ") Ġval Ġfinal Tree Head : ĠFinal Tree Head ĊĠĠĠ Ġ) Ġ: ĠState () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValidate ĠS CT Ġagainst Ġthis Ġif Ġit Ġwas Ġissued Ġbefore Ġthe Ġstate Ġtimestamp , Ġotherwise ĠS CT Ġis Ġun trusted ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠRet ired ( ĊĠĠĠĠĠĠĠ Ġ@ Json Adapter ( R fc 3 3 3 9 Deserializer :: class ) Ġoverride Ġval Ġtimestamp : ĠLong ĊĠĠĠ Ġ) Ġ: ĠState () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn ĠS CT Ġassociated Ġwith Ġthis Ġlog Ġserver Ġwould Ġbe Ġtreated Ġas Ġun trusted ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠReject ed ( ĊĠĠĠĠĠĠĠ Ġ@ Json Adapter ( R fc 3 3 3 9 Deserializer :: class ) Ġoverride Ġval Ġtimestamp : ĠLong ĊĠĠĠ Ġ) Ġ: ĠState () Ċ } Ċ