def DeconstructTimestampAssetId(id_prefix, asset_id, reverse_ts=True):
 assert IdPrefix.IsValid(id_prefix), id_prefix
 assert (asset_id[0] == id_prefix), asset_id
 byte_str = base64hex.B64HexDecode(asset_id[1:], padding=False)
 (timestamp,) = struct.unpack('>I', byte_str[:4])
 if reverse_ts:
  timestamp = (((1L << 32) - timestamp) - 1)
 (device_id, num_bytes) = util.DecodeVarLengthNumber(byte_str[4:])
 uniquifier = _DecodeUniquifier(byte_str[(4 + num_bytes):])
 return (timestamp, device_id, uniquifier)

def DeconstructTimestampAssetId ( id_prefix , asset_id , reverse_ts = True ) : assert IdPrefix . IsValid ( id_prefix ) , id_prefix assert ( asset_id [ 0 ] == id_prefix ) , asset_id byte_str = base64hex . B64HexDecode ( asset_id [ 1 : ] , padding = False ) ( timestamp , ) = struct . unpack ( '>I' , byte_str [ : 4 ] ) if reverse_ts : timestamp = ( ( ( 1 L << 32 ) - timestamp ) - 1 ) ( device_id , num_bytes ) = util . DecodeVarLengthNumber ( byte_str [ 4 : ] ) uniquifier = _DecodeUniquifier ( byte_str [ ( 4 + num_bytes ) : ] ) return ( timestamp , device_id , uniquifier )
deconstructs an asset id that was previously constructed according to the rules of "constructtimestampassetid" .