human
Complete this python program:
def _MakeViewpointMetadataDict(viewpoint, follower):
assistant
#Here is the Python code you requested.

    """Returns a viewpoint metadata dictionary appropriate for a service query response.
    The response dictionary contains valid photo urls for the viewpoint\s cover photo.
    """
    def _GetNormalizedViewpointTitle(vp_dict):
        'Normalize    the    viewpoint    title    so    that    it    can    be    used    as    a    directory    name    in    the    archive.\n                This    will    strip    anything    except    for    upper/lower    case    letters,    digits    and    the    space    character.\n                It    will    also    truncate    it    to    100    characters    to    avoid    file    path    limitations.\n                '
        norm_title = ''
        if (vp_dict['type'] == Viewpoint.DEFAULT):
            norm_title = 'Personal    Collection'
        elif (vp_dict.get('title') is not None):
            for c in vp_dict['title']:
                if (c in BuildArchiveOperation._PATH_WHITELIST):
                    norm_title += c
            norm_title = norm_title[:100]
        return norm_title
    vp_dict = viewpoint.MakeMetadataDict(follower)
    norm_vp_title = _GetNormalizedViewpointTitle(vp_dict)
    vp_dict['folder_name'] = ('%s/%s    %s' % (CONVO_FOLDER_NAME, norm_vp_title, vp_dict['viewpoint_id'])).strip()
    if ('cover_photo' in vp_dict):
        vp_dict['cover_photo']['full_get_url'] = os.path.join(vp_dict['folder_name'], (vp_dict['cover_photo']['photo_id'] + '.f.jpg'))
    return vp_dict