// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <verrsrc.h>

/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION @MAJOR@,@MINOR@,@BUILD@
 PRODUCTVERSION @MAJOR@,@MINOR@,@BUILD@
 FILEFLAGSMASK 0x17L
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "CompanyName", "@COMPANY_FULLNAME@"
            VALUE "FileDescription", "@PRODUCT_FULLNAME@"
            VALUE "FileVersion", "@MAJOR@.@MINOR@.@BUILD@"
            VALUE "InternalName", "@INTERNAL_NAME@"
            VALUE "LegalCopyright", "@COPYRIGHT@"
            VALUE "OriginalFilename", "@ORIGINAL_FILENAME@"
            VALUE "ProductName", "@PRODUCT_FULLNAME@"
            VALUE "ProductVersion", "@MAJOR@.@MINOR@.@BUILD@"
            VALUE "CompanyShortName", "@COMPANY_SHORTNAME@"
            VALUE "ProductShortName", "@PRODUCT_SHORTNAME@"
            VALUE "Official Build", "@OFFICIAL_BUILD@"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END
