package Ġdev . ols he v ski . navigation . re imag ined Ċ Ċ import Ġandroid . os . Parcel Ċ import Ġandroid . os . Parcelable Ċ import Ġandroid . util . Base 6 4 Ċ import Ġandroidx . compose . runtime . Immutable Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠA Ġunique Ġidentifier Ġof Ġa Ġnavigation Ġunit . ĠUses Ġ[ UUID ] Ġinternally , Ġso Ġit Ġinherits Ġthe Ġsame Ċ Ġ* Ġguarantees Ġof Ġuni queness . Ċ Ġ* Ċ Ġ* ĠIn Ġaddition Ġto Ġthe Ġ[ UUID ] Ġuni queness Ġimplements Ġ[ Parcelable ] Ġinterface Ġand Ġprovides Ġshorter Ċ Ġ* Ġ` toString ()` Ġoutput Ġin ĠBase 6 4 Ġformat . Ċ Ġ*/ Ċ @ Immutable Ċ data Ġclass ĠNav Id ( private Ġval Ġuuid : ĠUUID Ġ= ĠUUID . randomUUID ()) Ġ: ĠParcel able Ġ{ ĊĊĠĠĠ Ġprivate Ġconstructor ( parcel : ĠParcel ) Ġ: Ġthis ( UUID ( parcel . read Long (), Ġparcel . read Long ())) ĊĊĠĠĠ Ġoverride Ġfun ĠwriteTo Parcel ( parcel : ĠParcel , Ġflags : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparcel . write Long ( uuid . most Sign ificant Bits ) ĊĠĠĠĠĠĠĠ Ġparcel . write Long ( uuid . least Sign ificant Bits ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdescribe Contents (): ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġcompanion Ġobject ĠCRE ATOR Ġ: ĠParcel able . Creator < Nav Id > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate From Parcel ( parcel : ĠParcel ): ĠNav Id Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNav Id ( parcel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnew Array ( size : ĠInt ): ĠArray < Nav Id ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠarrayOf Null s ( size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbyte Buffer Ġ= ĠByteBuffer . allocate ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġbyte Buffer . put Long ( uuid . most Sign ificant Bits ) ĊĠĠĠĠĠĠĠ Ġbyte Buffer . put Long ( uuid . least Sign ificant Bits ) ĊĠĠĠĠĠĠĠ Ġreturn ĠBase 6 4 . encode ToString ( byte Buffer . array (), ĠBase 6 4 . NO _ WRAP Ġor ĠBase 6 4 . NO _ P ADDING ) ĊĠĠĠ Ġ} Ċ Ċ }